Title: Setting state of an exception object with a dic crashes Python 3.8.14 · Issue #97591 · python/cpython · GitHub
Open Graph Title: Setting state of an exception object with a dic crashes Python 3.8.14 · Issue #97591 · python/cpython
X Title: Setting state of an exception object with a dic crashes Python 3.8.14 · Issue #97591 · python/cpython
Description: Crash report The following programs defined a class C. In C, we perform dic clear() operation. When we set state of exception object with the dic, it causes segmentation fault on main branch (68c46ae) and latest stable Python 3.8.14. But...
Open Graph Description: Crash report The following programs defined a class C. In C, we perform dic clear() operation. When we set state of exception object with the dic, it causes segmentation fault on main branch (68c46...
X Description: Crash report The following programs defined a class C. In C, we perform dic clear() operation. When we set state of exception object with the dic, it causes segmentation fault on main branch (68c46...
Opengraph URL: https://github.com/python/cpython/issues/97591
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Setting state of an exception object with a dic crashes Python 3.8.14 ","articleBody":"\u003c!--\r\n Use this template for hard crashes of the interpreter, segmentation faults, failed C-level assertions, and similar.\r\n Do not submit this form if you encounter an exception being unexpectedly raised from a Python function.\r\n Most of the time, these should be filed as bugs, rather than crashes.\r\n\r\n The CPython interpreter is itself written in a different programming language, C.\r\n For CPython, a \"crash\" is when Python itself fails, leading to a traceback in the C stack.\r\n--\u003e\r\n\r\n# Crash report\r\n\r\nThe following programs defined a class C. In C, we perform dic clear() operation. When we set state of exception object with the dic, it causes segmentation fault on main branch (https://github.com/python/cpython/commit/68c46ae68b6e0c36a12e37285fff9ce0782ed01e) and latest stable Python 3.8.14. But it does not trigger any crashing on Python-3.11.0rc2 and Python 3.9.0.\r\n\r\n```\r\nclass C(str):\r\n def __hash__(self):\r\n d.clear()\r\n return 0\r\n\r\nd = {}\r\nd[C()] = C()\r\n\r\ne = Exception()\r\ne.__setstate__(d)\r\n```\r\n\r\n# Error messages\r\nSegmentation Fault (Core dumped)\r\n\r\n# Your environment\r\n\r\n\u003c!-- Include as many relevant details as possible about the environment you experienced the bug in --\u003e\r\n\r\n- CPython versions tested on: Python 3.8.14 and main branch (https://github.com/python/cpython/commit/68c46ae68b6e0c36a12e37285fff9ce0782ed01e)\r\n- Operating system and architecture: [GCC 7.5.0] on linux\r\n\r\n\u003c!--\r\nYou can freely edit this text. Remove any lines you believe are unnecessary.\r\n--\u003e\r\n","author":{"url":"https://github.com/xiaxinmeng","@type":"Person","name":"xiaxinmeng"},"datePublished":"2022-09-27T08:59:49.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":17},"url":"https://github.com/97591/cpython/issues/97591"}
| 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:b7b37a6d-6263-533d-9eff-b7c4b5691796 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DAA4:3EEF66:1FEE6DC:2C6C504:696936D2 |
| html-safe-nonce | 509e6cbf86b22e457a38f8c642627fa8d3eac52a26986d7964344e25b24bbafe |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQUE0OjNFRUY2NjoxRkVFNkRDOjJDNkM1MDQ6Njk2OTM2RDIiLCJ2aXNpdG9yX2lkIjoiMzA1NzM0NDIwMTk1MTM2MDcyMiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | bd6e3d48cbeb813ab5c80d671df5905a91302b851c02fb8179dbcf66b5249e7e |
| hovercard-subject-tag | issue:1387389231 |
| 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/97591/issue_layout |
| twitter:image | https://opengraph.githubassets.com/21fee031cb78a0ee9ac116e78e790aeca3fc3d8b2ff85ad46edea4b627189b28/python/cpython/issues/97591 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/21fee031cb78a0ee9ac116e78e790aeca3fc3d8b2ff85ad46edea4b627189b28/python/cpython/issues/97591 |
| og:image:alt | Crash report The following programs defined a class C. In C, we perform dic clear() operation. When we set state of exception object with the dic, it causes segmentation fault on main branch (68c46... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | xiaxinmeng |
| hostname | github.com |
| expected-hostname | github.com |
| None | 54182691a21263b584d2e600b758e081b0ff1d10ffc0d2eefa51cf754b43b51d |
| 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 | d69ac0477df0f87da03b8b06cebd187012d7a930 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width