Title: SEGV functools _Py_dict_lookup · Issue #140590 · python/cpython · GitHub
Open Graph Title: SEGV functools _Py_dict_lookup · Issue #140590 · python/cpython
X Title: SEGV functools _Py_dict_lookup · Issue #140590 · python/cpython
Description: Crash report What happened? import functools import unittest def capture(*args, **kw): return (args, kw) def extract_sig(part): return (part.func, part.args, part.keywords, part.__dict__) class MyTuple(tuple): def __add__(self, other): r...
Open Graph Description: Crash report What happened? import functools import unittest def capture(*args, **kw): return (args, kw) def extract_sig(part): return (part.func, part.args, part.keywords, part.__dict__) class MyT...
X Description: Crash report What happened? import functools import unittest def capture(*args, **kw): return (args, kw) def extract_sig(part): return (part.func, part.args, part.keywords, part.__dict__) class MyT...
Opengraph URL: https://github.com/python/cpython/issues/140590
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"SEGV functools _Py_dict_lookup","articleBody":"# Crash report\n\n### What happened?\n\n```python\nimport functools\nimport unittest\ndef capture(*args, **kw):\n return (args, kw)\ndef extract_sig(part):\n return (part.func, part.args, part.keywords, part.__dict__)\nclass MyTuple(tuple):\n def __add__(self, other):\n return list(self) + list(other)\nclass MyDict(dict):\n pass\nclass TestPartialSetstateSubclasses(unittest.TestCase):\n f = functools.partial(extract_sig)\n f.__setstate__((capture, MyTuple((1,)), MyDict(a=10), '\\u2603'))\n f.__setstate__((capture, BadTuple((1,)), {}, None))\nif __name__ == \"__main__\":\n import unittest; unittest.main(verbosity=0)\n```\n\n```\nAddressSanitizer:DEADLYSIGNAL\n=================================================================\n==197163==ERROR: AddressSanitizer: SEGV on unknown address (pc 0x583829da5bda bp 0x7ffd359603d0 sp 0x7ffd35960320 T0)\n==197163==The signal is caused by a READ memory access.\n==197163==Hint: this fault was caused by a dereference of a high value address (see register values below). Disassemble the provided pc to learn which register was used.\n #0 0x583829da5bda in _Py_dict_lookup ../Objects/dictobject.c:1254\n #1 0x583829dae83f in _Py_dict_lookup_threadsafe ../Objects/dictobject.c:1643\n #2 0x583829dae83f in _PyDict_GetMethodStackRef ../Objects/dictobject.c:1691\n #3 0x583829dfc2ff in _PyObject_GetMethodStackRef ../Objects/object.c:1756\n #4 0x583829b831a4 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:7844\n #5 0x58382a057b55 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121\n #6 0x58382a057b55 in _PyEval_Vector ../Python/ceval.c:2001\n #7 0x58382a0439e8 in builtin___build_class__ ../Python/bltinmodule.c:205\n #8 0x583829cd2ee7 in _PyObject_VectorcallTstate ../Include/internal/pycore_call.h:169\n #9 0x583829cd2ee7 in PyObject_Vectorcall ../Objects/call.c:327\n #10 0x583829b74ad2 in _PyEval_EvalFrameDefault ../Python/generated_cases.c.h:1620\n #11 0x58382a057386 in _PyEval_EvalFrame ../Include/internal/pycore_ceval.h:121\n #12 0x58382a057386 in _PyEval_Vector ../Python/ceval.c:2001\n #13 0x58382a057386 in PyEval_EvalCode ../Python/ceval.c:884\n #14 0x58382a215f0e in run_eval_code_obj ../Python/pythonrun.c:1365\n #15 0x58382a215f0e in run_mod ../Python/pythonrun.c:1459\n #16 0x58382a21abb7 in pyrun_file ../Python/pythonrun.c:1293\n #17 0x58382a21abb7 in _PyRun_SimpleFileObject ../Python/pythonrun.c:521\n #18 0x58382a21b6dc in _PyRun_AnyFileObject ../Python/pythonrun.c:81\n #19 0x58382a28eafc in pymain_run_file_obj ../Modules/main.c:410\n #20 0x58382a28eafc in pymain_run_file ../Modules/main.c:429\n #21 0x58382a28eafc in pymain_run_python ../Modules/main.c:691\n #22 0x58382a2903de in Py_RunMain ../Modules/main.c:772\n #23 0x58382a2903de in pymain_main ../Modules/main.c:802\n #24 0x58382a2903de in Py_BytesMain ../Modules/main.c:826\n #25 0x7249b00571c9 (/lib/x86_64-linux-gnu/libc.so.6+0x2a1c9) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)\n #26 0x7249b005728a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2a28a) (BuildId: 282c2c16e7b6600b0b22ea0c99010d2795752b5f)\n\nAddressSanitizer can not provide additional info.\nSUMMARY: AddressSanitizer: SEGV ../Objects/dictobject.c:1254 in _Py_dict_lookup\n==197163==ABORTING\n```\n\n### CPython versions tested on:\n\nCPython main branch\n\n### Operating systems tested on:\n\nLinux\n\n### Output from running 'python -VV' on the command line:\n\n_No response_\n\n\u003c!-- gh-linked-prs -->\n### Linked PRs\n* gh-140671\n* gh-140698\n* gh-140699\n\u003c!-- /gh-linked-prs -->\n","author":{"url":"https://github.com/YuanchengJiang","@type":"Person","name":"YuanchengJiang"},"datePublished":"2025-10-25T15:22:21Z","url":"https://github.com/python/cpython/issues/140590"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| 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:95e10b65-f0a9-9537-a8fc-87ac0b570dce |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D93E:3472C0:5EB530:839B34:6AF85B18 |
| html-safe-nonce | 7242f25d187db4795bbf25b5bb3fa4a078668c93af1c90ad70784b498c4a32f6 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEOTNFOjM0NzJDMDo1RUI1MzA6ODM5QjM0OjZBRjg1QjE4IiwidmlzaXRvcl9pZCI6IjM0NjI4MzQxMzAyNzIxNDgyNDgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | d78b4c1b398dffc6645107ad1b85083d7c3f21318709ff7d55844ed450176608 |
| hovercard-subject-tag | issue:3552622239 |
| 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/python/cpython/140590/issue_layout |
| twitter:image | https://opengraph.githubassets.com/85a804a742620b8ca0922c4f63fbe04494983bdd299f96d625dd42c9a0fb1703/python/cpython/issues/140590 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/85a804a742620b8ca0922c4f63fbe04494983bdd299f96d625dd42c9a0fb1703/python/cpython/issues/140590 |
| og:image:alt | Crash report What happened? import functools import unittest def capture(*args, **kw): return (args, kw) def extract_sig(part): return (part.func, part.args, part.keywords, part.__dict__) class MyT... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | YuanchengJiang |
| hostname | github.com |
| expected-hostname | github.com |
| None | 5713ecd83001b2f55c3509fb7a292bf7d66d0f167c7ae87a9f7eaec5a52bf8db |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| 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 | 653be32ff5c755082a4db662491bfbbcfc9112c1 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width