Title: Multiple `PyFrameObject`s can be created for a single `_PyInterpreterFrame` · Issue #97002 · python/cpython · GitHub
Open Graph Title: Multiple `PyFrameObject`s can be created for a single `_PyInterpreterFrame` · Issue #97002 · python/cpython
X Title: Multiple `PyFrameObject`s can be created for a single `_PyInterpreterFrame` · Issue #97002 · python/cpython
Description: Crash report I am not really sure under what circumstances this can occur, as I have not been able to isolate the specific piece of code that triggers this. Thankfully, when trying to re-create the segfault to capture a core dump locally...
Open Graph Description: Crash report I am not really sure under what circumstances this can occur, as I have not been able to isolate the specific piece of code that triggers this. Thankfully, when trying to re-create the...
X Description: Crash report I am not really sure under what circumstances this can occur, as I have not been able to isolate the specific piece of code that triggers this. Thankfully, when trying to re-create the...
Opengraph URL: https://github.com/python/cpython/issues/97002
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Multiple `PyFrameObject`s can be created for a single `_PyInterpreterFrame`","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\nI am not really sure under what circumstances this can occur, as I have not been able to isolate the specific piece of code that triggers this. Thankfully, when trying to re-create the segfault to capture a core dump locally, I have found that I instead got a full traceback, which you can find bellow\r\n\r\n# Error messages\r\n\r\n\u003cdetails\u003e\r\n \u003csummary\u003eSegfault\u003c/summary\u003e\r\n\r\n```\r\n============================= test session starts ==============================\r\nplatform linux -- Python 3.11.0rc2, pytest-7.1.3, pluggy-1.0.0\r\nUsing --randomly-seed=3689645484\r\nrootdir: /home/runner/work/hikari/hikari, configfile: pyproject.toml\r\nplugins: cov-3.0.0, randomly-3.12.0, asyncio-0.19.0\r\nasyncio: mode=Mode.STRICT\r\ncollected 3244 items\r\n\r\ntests/hikari/internal/test_aio.py .................................... [ 1%]\r\ntests/hikari/test_templates.py . [ 1%]\r\ntests/hikari/impl/test_event_manager.py Fatal Python error: Segmentation fault\r\n\r\nCurrent thread 0x00007f5aff3b8740 (most recent call first):\r\n File \"/opt/hostedtoolcache/Python/3.11.0-rc.2/x64/lib/python3.11/traceback.py\", line 366 in _get_code_position\r\n File \"/opt/hostedtoolcache/Python/3.11.0-rc.2/x64/lib/python3.11/traceback.py\", line 353 in _walk_tb_with_full_positions\r\n File \"/opt/hostedtoolcache/Python/3.11.0-rc.2/x64/lib/python3.11/traceback.py\", line 416 in _extract_from_extended_frame_gen\r\n File \"/opt/hostedtoolcache/Python/3.11.0-rc.2/x64/lib/python3.11/traceback.py\", line 688 in __init__\r\n File \"/opt/hostedtoolcache/Python/3.11.0-rc.2/x64/lib/python3.11/traceback.py\", line 139 in format_exception\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/unraisableexception.py\", line 72 in unraisable_exception_runtest_hook\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/unraisableexception.py\", line 83 in pytest_runtest_setup\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_callers.py\", line 55 in _multicall\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_manager.py\", line 80 in _hookexec\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_hooks.py\", line 265 in __call__\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/runner.py\", line 259 in \u003clambda\u003e\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/runner.py\", line 338 in from_call\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/runner.py\", line 258 in call_runtest_hook\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/runner.py\", line 219 in call_and_report\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/runner.py\", line 124 in runtestprotocol\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/runner.py\", line 111 in pytest_runtest_protocol\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_callers.py\", line 39 in _multicall\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_manager.py\", line 80 in _hookexec\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_hooks.py\", line 265 in __call__\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/main.py\", line 347 in pytest_runtestloop\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_callers.py\", line 39 in _multicall\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_manager.py\", line 80 in _hookexec\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_hooks.py\", line 265 in __call__\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/main.py\", line 322 in _main\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/main.py\", line 268 in wrap_session\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/main.py\", line 315 in pytest_cmdline_main\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_callers.py\", line 39 in _multicall\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_manager.py\", line 80 in _hookexec\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pluggy/_hooks.py\", line 265 in __call__\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/config/__init__.py\", line 164 in main\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/_pytest/config/__init__.py\", line 187 in console_main\r\n File \"/home/runner/work/hikari/hikari/.nox/pytest/lib/python3.11/site-packages/pytest/__main__.py\", line 5 in \u003cmodule\u003e\r\n File \"\u003cfrozen runpy\u003e\", line 88 in _run_code\r\n File \"\u003cfrozen runpy\u003e\", line 198 in _run_module_as_main\r\n\r\nExtension modules: multidict._multidict, yarl._quoting_c, aiohttp._helpers, aiohttp._http_writer, aiohttp._http_parser, aiohttp._websocket, frozenlist._frozenlist (total: 7)\r\n```\r\n\u003c/details\u003e\r\n\r\n\u003cdetails\u003e\r\n \u003csummary\u003eTraceback\u003c/summary\u003e\r\n\r\n```\r\nexc = \u003cclass 'ResourceWarning'\u003e, value = ResourceWarning('unclosed \u003csocket.socket fd=16, family=1, type=1, proto=0\u003e'), tb = \u003ctraceback object at 0x7f1e410ba440\u003e, limit = None, chain = True\r\n\r\n def format_exception(exc, /, value=_sentinel, tb=_sentinel, limit=None, \\\r\n chain=True):\r\n \"\"\"Format a stack trace and the exception information.\r\n \r\n The arguments have the same meaning as the corresponding arguments\r\n to print_exception(). The return value is a list of strings, each\r\n ending in a newline and some containing internal newlines. When\r\n these lines are concatenated and printed, exactly the same text is\r\n printed as does print_exception().\r\n \"\"\"\r\n value, tb = _parse_value_tb(exc, value, tb)\r\n\u003e te = TracebackException(type(value), value, tb, limit=limit, compact=True)\r\n\r\nchain = True\r\nexc = \u003cclass 'ResourceWarning'\u003e\r\nlimit = None\r\ntb = \u003ctraceback object at 0x7f1e410ba440\u003e\r\nvalue = ResourceWarning('unclosed \u003csocket.socket fd=16, family=1, type=1, proto=0\u003e')\r\n\r\n/usr/lib/python3.11/traceback.py:139: \r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n/usr/lib/python3.11/traceback.py:688: in __init__\r\n self.stack = StackSummary._extract_from_extended_frame_gen(\r\n _seen = {139767898821088}\r\n capture_locals = False\r\n compact = True\r\n exc_traceback = \u003ctraceback object at 0x7f1e410ba440\u003e\r\n exc_type = \u003cclass 'ResourceWarning'\u003e\r\n exc_value = ResourceWarning('unclosed \u003csocket.socket fd=16, family=1, type=1, proto=0\u003e')\r\n is_recursive_call = False\r\n limit = None\r\n lookup_lines = True\r\n max_group_depth = 10\r\n max_group_width = 15\r\n self = \u003ctraceback.TracebackException object at 0x7f1e3fddb410\u003e\r\n/usr/lib/python3.11/traceback.py:416: in _extract_from_extended_frame_gen\r\n for f, (lineno, end_lineno, colno, end_colno) in frame_gen:\r\n capture_locals = False\r\n fnames = set()\r\n frame_gen = \u003cgenerator object _walk_tb_with_full_positions at 0x7f1e3f1ecba0\u003e\r\n klass = \u003cclass 'traceback.StackSummary'\u003e\r\n limit = None\r\n lookup_lines = True\r\n result = []\r\n/usr/lib/python3.11/traceback.py:353: in _walk_tb_with_full_positions\r\n positions = _get_code_position(tb.tb_frame.f_code, tb.tb_lasti)\r\n tb = \u003ctraceback object at 0x7f1e410ba440\u003e\r\n_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ \r\n\r\ncode = \u003ccell at 0x7f1e45de9f60: str object at 0x7f1e45bd80f0\u003e, instruction_index = 0\r\n\r\n def _get_code_position(code, instruction_index):\r\n if instruction_index \u003c 0:\r\n return (None, None, None, None)\r\n\u003e positions_gen = code.co_positions()\r\nE AttributeError: 'cell' object has no attribute 'co_positions'\r\n\r\ncode = \u003ccell at 0x7f1e45de9f60: str object at 0x7f1e45bd80f0\u003e\r\ninstruction_index = 0\r\n\r\n/usr/lib/python3.11/traceback.py:366: AttributeError\r\n\r\n-------- coverage: platform linux, python 3.11.0-candidate-2 ---------\r\n\r\n```\r\n\u003c/details\u003e\r\n\r\n\r\n# Your environment\r\n\r\n- CPython versions tested on: 3.11.0-rc.2\r\n- Operating system and architecture: Linux x86_64\r\n\r\n","author":{"url":"https://github.com/davfsa","@type":"Person","name":"davfsa"},"datePublished":"2022-09-21T22:15:52.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":37},"url":"https://github.com/97002/cpython/issues/97002"}
| 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:fd2e6c26-98b2-bf11-6363-59d99914aca6 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | A168:23762:A4F462:DBF036:6969915C |
| html-safe-nonce | d9161f6b36ad0d2a902a21484d238001d09a4efa0b49ec04c0913bee1e2daca3 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBMTY4OjIzNzYyOkE0RjQ2MjpEQkYwMzY6Njk2OTkxNUMiLCJ2aXNpdG9yX2lkIjoiMTEzNzgwMzY4NTM0OTkyMTExNiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | b872c42aa92493caa958abc91901abbeed194457a3ce60bb496c12a8611476bf |
| hovercard-subject-tag | issue:1381572777 |
| 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/97002/issue_layout |
| twitter:image | https://opengraph.githubassets.com/9da8ab035547db9b6f24e01d2aff8c9020d6413c001e61ecea7c55fd62c443d6/python/cpython/issues/97002 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/9da8ab035547db9b6f24e01d2aff8c9020d6413c001e61ecea7c55fd62c443d6/python/cpython/issues/97002 |
| og:image:alt | Crash report I am not really sure under what circumstances this can occur, as I have not been able to isolate the specific piece of code that triggers this. Thankfully, when trying to re-create the... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | davfsa |
| hostname | github.com |
| expected-hostname | github.com |
| None | 3542e147982176a7ebaa23dfb559c8af16f721c03ec560c68c56b64a0f35e751 |
| 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 | af80af7cc9e3de9c336f18b208a600950a3c187c |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width