Title: SegFault before Python shutdown · Issue #1683 · pythonnet/pythonnet · GitHub
Open Graph Title: SegFault before Python shutdown · Issue #1683 · pythonnet/pythonnet
X Title: SegFault before Python shutdown · Issue #1683 · pythonnet/pythonnet
Description: Environment Pythonnet version: 3.0.0.dev1 Python version: 3.9.9 Operating System: Kali Linux .NET Runtime: mono-complete:amd64/kali-rolling 6.8.0.105+dfsg-3.2 uptodate mono-devel:all/kali-rolling 6.8.0.105+dfsg-3.2 Details This example c...
Open Graph Description: Environment Pythonnet version: 3.0.0.dev1 Python version: 3.9.9 Operating System: Kali Linux .NET Runtime: mono-complete:amd64/kali-rolling 6.8.0.105+dfsg-3.2 uptodate mono-devel:all/kali-rolling 6...
X Description: Environment Pythonnet version: 3.0.0.dev1 Python version: 3.9.9 Operating System: Kali Linux .NET Runtime: mono-complete:amd64/kali-rolling 6.8.0.105+dfsg-3.2 uptodate mono-devel:all/kali-rolling 6...
Opengraph URL: https://github.com/pythonnet/pythonnet/issues/1683
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"SegFault before Python shutdown","articleBody":"### Environment\r\n\r\n- Pythonnet version: 3.0.0.dev1\r\n- Python version: 3.9.9\r\n- Operating System: Kali Linux\r\n- .NET Runtime: \r\nmono-complete:amd64/kali-rolling 6.8.0.105+dfsg-3.2 uptodate\r\nmono-devel:all/kali-rolling 6.8.0.105+dfsg-3.2\r\n\r\n### Details\r\n\r\nThis example causes segfault before python shutdown:\r\n\r\n```\r\nimport clr\r\nfrom System import IntPtr\r\na = clr.GetClrType(IntPtr)\r\n```\r\nActually no matter what type is imported (IntPtr, Console, etc.) - crashing anyway. However, crash happen exactly after the program finished its executing and only when NO debugging.\r\n\r\n```\r\ngef➤ bt\r\n\r\n#0 0x0000000040071c50 in ?? ()\r\n#1 0x0000000000508a13 in _Py_Dealloc (op=\u003coptimized out\u003e) at ../Objects/object.c:2209\r\n#2 _Py_DECREF (op=\u003coptimized out\u003e) at ../Include/object.h:430\r\n#3 _Py_XDECREF (op=\u003coptimized out\u003e) at ../Include/object.h:497\r\n#4 free_keys_object (keys=0x11ac070) at ../Objects/dictobject.c:598\r\n#5 0x0000000000508824 in dictkeys_decref (dk=\u003coptimized out\u003e) at ../Objects/dictobject.c:333\r\n#6 dict_dealloc (mp=0x7ffff78671c0) at ../Objects/dictobject.c:2026\r\n#7 0x00000000005a9f60 in _Py_DECREF (op=\u003coptimized out\u003e) at ../Include/object.h:430\r\n#8 _Py_XDECREF (op=\u003coptimized out\u003e) at ../Include/object.h:497\r\n#9 module_dealloc (m=0x7ffff7863cc0) at ../Objects/moduleobject.c:677\r\n#10 0x00000000004f9749 in _Py_Dealloc (op=\u003coptimized out\u003e) at ../Objects/object.c:2209\r\n#11 _Py_DECREF (op=\u003coptimized out\u003e) at ../Include/object.h:430\r\n#12 _Py_XDECREF (op=\u003coptimized out\u003e) at ../Include/object.h:497\r\n#13 insertdict (mp=\u003coptimized out\u003e, key='__main__', hash=\u003coptimized out\u003e, value=\u003coptimized out\u003e) at ../Objects/dictobject.c:1123\r\n#14 0x00000000006294a0 in _PyImport_Cleanup (tstate=0x94e6e0) at ../Python/import.c:526\r\n#15 0x000000000062732f in Py_FinalizeEx () at ../Python/pylifecycle.c:1426\r\n#16 0x000000000061e0c0 in Py_RunMain () at ../Modules/main.c:679\r\n#17 0x0000000000606199 in Py_BytesMain (argc=\u003coptimized out\u003e, argv=\u003coptimized out\u003e) at ../Modules/main.c:731\r\n#18 0x00007ffff7c427ed in __libc_start_main (main=0x606160 \u003cmain\u003e, argc=0x2, argv=0x7fffffffde18, init=\u003coptimized out\u003e, fini=\u003coptimized out\u003e, rtld_fini=\u003coptimized out\u003e, stack_end=0x7fffffffde08) at ../csu/libc-start.c:332\r\n#19 0x000000000060609a in _start ()\r\n\r\ngef➤ xinfo 0x0000000040071c50\r\n[*] Cannot reach 0x40071c50 in memory space\r\n\r\ngef➤ xinfo 0x0000000000508a13\r\nPage: 0x000000000041f000 → 0x0000000000690000 (size=0x271000)\r\nPermissions: r-x\r\nPathname: /usr/bin/python3.9\r\nOffset (from page): 0xe9a13\r\nInode: 6816263\r\nSegment: .text (0x0000000000420e70-0x000000000068fe11)\r\nOffset (from segment): 0xe7ba3\r\nSymbol: free_keys_object.lto_priv+115\r\n```\r\n\r\nIf we add at the end of the script this line, then everything works like a charm:\r\n```\r\nEnvironment.Exit(0)\r\n```\r\n\r\nAlso works well if we clear variable at the end:\r\n```\r\na = None\r\n```","author":{"url":"https://github.com/AndyWatterman","@type":"Person","name":"AndyWatterman"},"datePublished":"2022-01-28T06:16:34.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":4},"url":"https://github.com/1683/pythonnet/issues/1683"}
| 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:b2271335-af9e-8996-f035-22918a1521c8 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 87A2:34DEC:2BD34E1:3D8EFC3:6971075D |
| html-safe-nonce | 022059b633cb4a9c8fcc60729830c2826591353e6da17c9201c1091e1a43f82f |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4N0EyOjM0REVDOjJCRDM0RTE6M0Q4RUZDMzo2OTcxMDc1RCIsInZpc2l0b3JfaWQiOiI4Nzg3NzU5MjU0MTE5NDUwNDYxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 981473e60bfdbed03d4b57d22db63ac2ce34dcd1ad4b37e67fec9015169d5972 |
| hovercard-subject-tag | issue:1117041268 |
| 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/1683/issue_layout |
| twitter:image | https://opengraph.githubassets.com/b4bb4cbd86fcc59e358e3a81e97041d0cf8e1f12e17fc2b709970317da62acf5/pythonnet/pythonnet/issues/1683 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/b4bb4cbd86fcc59e358e3a81e97041d0cf8e1f12e17fc2b709970317da62acf5/pythonnet/pythonnet/issues/1683 |
| og:image:alt | Environment Pythonnet version: 3.0.0.dev1 Python version: 3.9.9 Operating System: Kali Linux .NET Runtime: mono-complete:amd64/kali-rolling 6.8.0.105+dfsg-3.2 uptodate mono-devel:all/kali-rolling 6... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | AndyWatterman |
| hostname | github.com |
| expected-hostname | github.com |
| None | 6d0e7b0d5e294a53c55f49e80755e785182080c6e6a48c9ed353bedddaee69f4 |
| 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 | 6d5a3a396bc74e65fd3ef897b0a99a6e489debaa |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width