Title: Delegates declared using NewReference and BorrowedReference structs are not working/crashing on ppc64le/s390x · Issue #2186 · pythonnet/pythonnet · GitHub
Open Graph Title: Delegates declared using NewReference and BorrowedReference structs are not working/crashing on ppc64le/s390x · Issue #2186 · pythonnet/pythonnet
X Title: Delegates declared using NewReference and BorrowedReference structs are not working/crashing on ppc64le/s390x · Issue #2186 · pythonnet/pythonnet
Description: Environment Pythonnet version: 3.1.0-preview2023-04-03 Python version: 3.8.10 Operating System: Linux (ppc64le/s390x architecture) .NET Runtime: net7.0 Details The delegates declared using NewReference or BorrowedReference structs are no...
Open Graph Description: Environment Pythonnet version: 3.1.0-preview2023-04-03 Python version: 3.8.10 Operating System: Linux (ppc64le/s390x architecture) .NET Runtime: net7.0 Details The delegates declared using NewRefer...
X Description: Environment Pythonnet version: 3.1.0-preview2023-04-03 Python version: 3.8.10 Operating System: Linux (ppc64le/s390x architecture) .NET Runtime: net7.0 Details The delegates declared using NewRefer...
Opengraph URL: https://github.com/pythonnet/pythonnet/issues/2186
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Delegates declared using NewReference and BorrowedReference structs are not working/crashing on ppc64le/s390x","articleBody":"### Environment\r\n\r\n- Pythonnet version: 3.1.0-preview2023-04-03\r\n- Python version: 3.8.10\r\n- Operating System: Linux (ppc64le/s390x architecture)\r\n- .NET Runtime: net7.0\r\n\r\n### Details\r\nThe delegates declared using NewReference or BorrowedReference structs are not working/crashing on ppc64le architecture as the delegate declaration and C function declaration are not matching. For e.g.:\r\nunsafe internal static delegate* unmanaged[Cdecl]\u003clong, NewReference\u003e PyLong_FromLongLong { get; }\r\n\r\nThe above delegate does not work because the long value is getting passed in wrong register as NewReference is a struct type but the C function just returns a pointer to PyObject. Following is the C function declaration:\r\nPyObject* PyLong_FromLongLong(long long v)\r\n\r\nIf we change the above delegate as below then it's works fine.\r\nunsafe internal static delegate* unmanaged[Cdecl]\u003clong, IntPtr\u003e PyLong_FromLongLong { get; }\r\n\r\n- Describe what you were trying to get done.\r\n\r\n _TODO_\r\n\r\n- What commands did you run to trigger this issue? If you can provide a\r\n [Minimal, Complete, and Verifiable example](http://stackoverflow.com/help/mcve)\r\n this will help us understand the issue.\r\n\r\n```python\r\n print('TODO')\r\n```\r\n\r\n- If there was a crash, please include the traceback here.\r\n\r\n**Below is the Traceback:**\r\n\r\nThread 1 (Thread 0x7603109c5400 (LWP 919128)):\r\n#0 0x000076031036f318 in __GI___wait4 (pid=\u003coptimized out\u003e, stat_loc=0x7fffe1938990, options=\u003coptimized out\u003e, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:27\r\n#1 0x000076031036f20c in __GI___waitpid (pid=\u003coptimized out\u003e, stat_loc=\u003coptimized out\u003e, options=\u003coptimized out\u003e) at waitpid.c:38\r\n#2 0x0000760310014abc in dump_native_stacktrace (signal=\u003coptimized out\u003e, mctx=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/mini-posix.c:843\r\n#3 mono_dump_native_crash_info (signal=\u003coptimized out\u003e, mctx=0x7fffe19394a8, info=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/mini-posix.c:870\r\n#4 0x000076030ffc474c in mono_handle_native_crash (signal=0x7603100f2f5f \"SIGSEGV\", mctx=0x7fffe19394a8, info=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/mini-exceptions.c:3005\r\n#5 0x000076030ff0e0a8 in mono_sigsegv_signal_handler_debug (_dummy=11, _info=0x7fffe193a4e8, context=0x7fffe1939770, debug_fault_addr=0xea6100f8ea4100f0) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/mini-runtime.c:3773\r\n#6 \u003csignal handler called\u003e\r\n#7 _Py_INCREF (op=0xea6100f8ea4100f0) at ../Include/object.h:459\r\n#8 insertdict (mp=mp@entry=0x76030c096590, key=key@entry=0x760305e0d040, hash=-8286388524546298114, value=value@entry=0xea6100f8ea4100f0) at ../Objects/dictobject.c:1034\r\n#9 0x0000760305f34060 in PyDict_SetItem (op=0x76030c096590, key=0x760305e0d040, value=0xea6100f8ea4100f0) at ../Objects/dictobject.c:1545\r\n#10 0x0000760305f390f4 in PyDict_SetItemString (v=0x76030c096590, key=\u003coptimized out\u003e, item=0xea6100f8ea4100f0) at ../Objects/dictobject.c:3417\r\n#11 0x00007603060c5bc0 in PySys_SetObject (name=\u003coptimized out\u003e, v=\u003coptimized out\u003e) at ../Python/sysmodule.c:112\r\n#12 0x000076030f525a14 in ?? ()\r\n#13 0x000076030f524470 in ?? ()\r\n#14 0x000076030f523ca4 in ?? ()\r\n#15 0x000076030f511aac in ?? ()\r\n#16 0x000076030f4dab18 in ?? ()\r\n#17 0x000076030f4da74c in ?? ()\r\n#18 0x000076030f4d7fc0 in ?? ()\r\n#19 0x000076030f4d4b90 in ?? ()\r\n#20 0x000076030f4d7dd0 in ?? ()\r\n#21 0x000076030ff11874 in mono_jit_runtime_invoke (method=0x38e5de557e8, obj=0x0, params=\u003coptimized out\u003e, exc=\u003coptimized out\u003e, error=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/mini-runtime.c:3570\r\n#22 0x000076030fdeca38 in do_runtime_invoke (method=0x38e5de557e8, obj=\u003coptimized out\u003e, params=0x7fffe193b580, exc=0x0, error=0x7fffe193b628) at /root/alhad/Native_Build/runtime/src/mono/mono/metadata/object.c:2415\r\n#23 mono_runtime_invoke_checked (method=0x38e5de557e8, obj=\u003coptimized out\u003e, params=0x7fffe193b580, error=0x7fffe193b628) at /root/alhad/Native_Build/runtime/src/mono/mono/metadata/object.c:2583\r\n#24 0x000076030fdf63b4 in do_exec_main_checked (method=0x38e5de557e8, args=\u003coptimized out\u003e, error=0x7fffe193b628) at /root/alhad/Native_Build/runtime/src/mono/mono/metadata/object.c:4435\r\n#25 mono_runtime_exec_main_checked (method=\u003coptimized out\u003e, args=\u003coptimized out\u003e, error=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/metadata/object.c:4541\r\n#26 0x000076030ff76314 in mono_jit_exec_internal (domain=\u003coptimized out\u003e, assembly=\u003coptimized out\u003e, argc=1575548528, argv=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/driver.c:1365\r\n#27 mono_jit_exec (domain=\u003coptimized out\u003e, assembly=\u003coptimized out\u003e, argc=1575548528, argv=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/driver.c:1310\r\n#28 0x000076030ff79eb0 in main_thread_handler (user_data=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/driver.c:1442\r\n#29 mono_main (argc=\u003coptimized out\u003e, argv=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/driver.c:2647\r\n#30 0x000076030fffd668 in monovm_execute_assembly (argc=0, argv=0x0, managedAssemblyPath=\u003coptimized out\u003e, exitCode=0x7fffe193bdc8) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/monovm.c:268\r\n#31 0x000076030fefdbc8 in coreclr_execute_assembly (hostHandle=\u003coptimized out\u003e, domainId=\u003coptimized out\u003e, argc=\u003coptimized out\u003e, argv=\u003coptimized out\u003e, managedAssemblyPath=\u003coptimized out\u003e, exitCode=\u003coptimized out\u003e) at /root/alhad/Native_Build/runtime/src/mono/mono/mini/main-core.c:89\r\n#32 0x0000760310179aa4 in ?? () from /root/alhad/Native_Build/output/.dotnet/shared/Microsoft.NETCore.App/7.0.4/libhostpolicy.so\r\n#33 0x0000760310188654 in ?? () from /root/alhad/Native_Build/output/.dotnet/shared/Microsoft.NETCore.App/7.0.4/libhostpolicy.so\r\n#34 0x0000760310188b80 in ?? () from /root/alhad/Native_Build/output/.dotnet/shared/Microsoft.NETCore.App/7.0.4/libhostpolicy.so\r\n#35 0x00007603101898fc in corehost_main () from /root/alhad/Native_Build/output/.dotnet/shared/Microsoft.NETCore.App/7.0.4/libhostpolicy.so\r\n#36 0x000076031020385c in ?? () from /root/alhad/Native_Build/output/.dotnet/host/fxr/7.0.4/libhostfxr.so\r\n#37 0x0000760310202310 in ?? () from /root/alhad/Native_Build/output/.dotnet/host/fxr/7.0.4/libhostfxr.so\r\n#38 0x00007603101fdc20 in hostfxr_main_startupinfo () from /root/alhad/Native_Build/output/.dotnet/host/fxr/7.0.4/libhostfxr.so\r\n#39 0x0000038e23a41d68 in ?? ()\r\n#40 0x0000038e23a421b8 in ?? ()\r\n#41 0x0000760310294ccc in generic_start_main (main=0x38e23a420f0, argc=\u003coptimized out\u003e, argv=0x7fffe193cb48, auxvec=0x7fffe193cc18, init=\u003coptimized out\u003e, rtld_fini=\u003coptimized out\u003e, stack_end=\u003coptimized out\u003e, fini=\u003coptimized out\u003e) at ../csu/libc-start.c:308\r\n#42 0x0000760310294ea4 in __libc_start_main (argc=\u003coptimized out\u003e, argv=\u003coptimized out\u003e, ev=\u003coptimized out\u003e, auxvec=\u003coptimized out\u003e, rtld_fini=\u003coptimized out\u003e, stinfo=\u003coptimized out\u003e, stack_on_entry=\u003coptimized out\u003e) at ../sysdeps/unix/sysv/linux/powerpc/libc-start.c:98\r\n#43 0x0000000000000000 in ?? ()\r\n[Inferior 1 (process 919128) detached]\r\n\r\n```python\r\n print('TODO')\r\n```\r\n","author":{"url":"https://github.com/alhad-deshpande","@type":"Person","name":"alhad-deshpande"},"datePublished":"2023-07-06T13:12:51.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":10},"url":"https://github.com/2186/pythonnet/issues/2186"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:5e917bad-ce50-e107-d54d-3c3569f0f740 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DFAA:50BCD:3CC076F:54C7B52:697133AB |
| html-safe-nonce | e3c35e611df25f02378742b3f0d6571ce3b337f0e84ca4593f8fd852f3dc8b39 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERkFBOjUwQkNEOjNDQzA3NkY6NTRDN0I1Mjo2OTcxMzNBQiIsInZpc2l0b3JfaWQiOiI1OTg0MzIyOTA2MzUzMzA0NzUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | f8808ddb6beea0f37616f7a2db5fb6dbe14e9d4012a1fc012594baac3f703ae4 |
| hovercard-subject-tag | issue:1791538208 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/pythonnet/pythonnet/2186/issue_layout |
| twitter:image | https://opengraph.githubassets.com/3728783ad862cae0271db5616508a9c1765063869a7b707cedf04193f38bdb87/pythonnet/pythonnet/issues/2186 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/3728783ad862cae0271db5616508a9c1765063869a7b707cedf04193f38bdb87/pythonnet/pythonnet/issues/2186 |
| og:image:alt | Environment Pythonnet version: 3.1.0-preview2023-04-03 Python version: 3.8.10 Operating System: Linux (ppc64le/s390x architecture) .NET Runtime: net7.0 Details The delegates declared using NewRefer... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | alhad-deshpande |
| hostname | github.com |
| expected-hostname | github.com |
| None | 0c91dba94f720b71e069760db74b45f0f69e50caa632dc4e976d5bf46c8242ee |
| turbo-cache-control | no-preview |
| go-import | github.com/pythonnet/pythonnet git https://github.com/pythonnet/pythonnet.git |
| octolytics-dimension-user_id | 6050430 |
| octolytics-dimension-user_login | pythonnet |
| octolytics-dimension-repository_id | 14748123 |
| octolytics-dimension-repository_nwo | pythonnet/pythonnet |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 14748123 |
| octolytics-dimension-repository_network_root_nwo | pythonnet/pythonnet |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | e6c1902093917264567791cc30776acd1b2490c9 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width