cpython
cpython copied to clipboard
Specialize calls for Python classes
BPO | 46939 |
---|---|
Nosy | @markshannon, @brandtbucher, @Fidget-Spinner |
PRs |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee = None
closed_at = None
created_at = <Date 2022-03-06.13:49:31.311>
labels = ['3.11']
title = 'Specialize calls for Python classes'
updated_at = <Date 2022-03-16.15:04:06.638>
user = 'https://github.com/Fidget-Spinner'
bugs.python.org fields:
activity = <Date 2022-03-16.15:04:06.638>
actor = 'kj'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = []
creation = <Date 2022-03-06.13:49:31.311>
creator = 'kj'
dependencies = []
files = []
hgrepos = []
issue_num = 46939
keywords = ['patch']
message_count = 1.0
messages = ['414618']
nosy_count = 3.0
nosy_names = ['Mark.Shannon', 'brandtbucher', 'kj']
pr_nums = ['31707', '31936']
priority = 'normal'
resolution = None
stage = 'patch review'
status = 'open'
superseder = None
type = None
url = 'https://bugs.python.org/issue46939'
versions = ['Python 3.11']
- PR: gh-99331
Please see https://github.com/faster-cpython/ideas/issues/267.
I hope I'm not stepping on anyone's toes here (sorry if I cause any duplicate work)!
Since this is closed as completed, I assume this implies gh-31707 and gh-31936 should be closed as well. cc. @Fidget-Spinner
Done
The following change introduced a crash: commit 04492cbc9aa45ac2c12d22083c406a0364c39f5b
commit 04492cbc9aa45ac2c12d22083c406a0364c39f5b
Author: Mark Shannon <[email protected]>
Date: Thu Jun 22 09:48:19 2023 +0100
GH-91095: Specialize calls to normal Python classes. (GH-99331)
To reproduce the crash:
$ git checkout 04492cbc9aa45ac2c12d22083c406a0364c39f5b
$ git clean -fdx
$ ./configure --with-pydebug && make
$ ./python -m test -j1 -R 3:3 test_import -v -m test_concurrency -m test___cached___legacy_pyc -m test_package___cached___from_pyc
(...)
test_concurrency (test.test_import.ImportTests.test_concurrency) ...
python: Python/instrumentation.c:940: call_instrumentation_vector: Assertion `code->_co_instrumentation_version == tstate->interp->monitoring_version' failed.
Fatal Python error: Aborted
Current thread 0x00007f025195c6c0 (most recent call first):
File "__init__", line ??? in __init__
File "<frozen importlib._bootstrap_external>", line 1465 in _path_hooks
File "<frozen importlib._bootstrap_external>", line 1489 in _path_importer_cache
File "<frozen importlib._bootstrap_external>", line 1502 in _get_spec
File "<frozen importlib._bootstrap_external>", line 1530 in find_spec
File "<frozen importlib._bootstrap>", line 1168 in _find_spec
File "<frozen importlib._bootstrap>", line 1228 in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1266 in _find_and_load
File "/home/vstinner/python/main/Lib/test/test_import/__init__.py", line 701 in run
File "/home/vstinner/python/main/Lib/threading.py", line 989 in run
File "/home/vstinner/python/main/Lib/threading.py", line 1052 in _bootstrap_inner
File "/home/vstinner/python/main/Lib/threading.py", line 1009 in _bootstrap
Thread 0x00007f025115b6c0 (most recent call first):
File "/home/vstinner/python/main/Lib/threading.py", line 334 in wait
File "/home/vstinner/python/main/Lib/threading.py", line 634 in wait
File "/home/vstinner/python/main/Lib/test/test_import/__init__.py", line 699 in run
File "/home/vstinner/python/main/Lib/threading.py", line 989 in run
File "/home/vstinner/python/main/Lib/threading.py", line 1052 in _bootstrap_inner
File "/home/vstinner/python/main/Lib/threading.py", line 1009 in _bootstrap
Thread 0x00007f026045d740 (most recent call first):
File "/home/vstinner/python/main/Lib/threading.py", line 1146 in _wait_for_tstate_lock
File "/home/vstinner/python/main/Lib/threading.py", line 1130 in join
File "/home/vstinner/python/main/Lib/test/support/threading_helper.py", line 144 in start_threads
File "/home/vstinner/python/main/Lib/contextlib.py", line 144 in __exit__
File "/home/vstinner/python/main/Lib/test/test_import/__init__.py", line 711 in test_concurrency
File "/home/vstinner/python/main/Lib/unittest/case.py", line 589 in _callTestMethod
File "/home/vstinner/python/main/Lib/unittest/case.py", line 634 in run
File "/home/vstinner/python/main/Lib/unittest/case.py", line 690 in __call__
File "/home/vstinner/python/main/Lib/unittest/suite.py", line 122 in run
File "/home/vstinner/python/main/Lib/unittest/suite.py", line 84 in __call__
File "/home/vstinner/python/main/Lib/unittest/suite.py", line 122 in run
File "/home/vstinner/python/main/Lib/unittest/suite.py", line 84 in __call__
File "/home/vstinner/python/main/Lib/unittest/suite.py", line 122 in run
File "/home/vstinner/python/main/Lib/unittest/suite.py", line 84 in __call__
File "/home/vstinner/python/main/Lib/unittest/runner.py", line 240 in run
File "/home/vstinner/python/main/Lib/test/support/__init__.py", line 1115 in _run_suite
File "/home/vstinner/python/main/Lib/test/support/__init__.py", line 1241 in run_unittest
File "/home/vstinner/python/main/Lib/test/libregrtest/runtest.py", line 294 in _test_module
File "/home/vstinner/python/main/Lib/test/libregrtest/refleak.py", line 90 in dash_R
File "/home/vstinner/python/main/Lib/test/libregrtest/runtest.py", line 328 in _runtest_inner2
File "/home/vstinner/python/main/Lib/test/libregrtest/runtest.py", line 373 in _runtest_inner
File "/home/vstinner/python/main/Lib/test/libregrtest/runtest.py", line 248 in _runtest
File "/home/vstinner/python/main/Lib/test/libregrtest/runtest.py", line 278 in runtest
File "/home/vstinner/python/main/Lib/test/libregrtest/runtest_mp.py", line 98 in run_tests_worker
File "/home/vstinner/python/main/Lib/test/libregrtest/main.py", line 779 in _main
File "/home/vstinner/python/main/Lib/test/libregrtest/main.py", line 758 in main
File "/home/vstinner/python/main/Lib/test/libregrtest/main.py", line 822 in main
File "/home/vstinner/python/main/Lib/test/regrtest.py", line 43 in _main
File "/home/vstinner/python/main/Lib/test/regrtest.py", line 47 in <module>
File "/home/vstinner/python/main/Lib/runpy.py", line 88 in _run_code
File "/home/vstinner/python/main/Lib/runpy.py", line 198 in _run_module_as_main
Extension modules: _testcapi, _testinternalcapi, _testsinglephase, _testmultiphase, _xxsubinterpreters (total: 5)
It seems unlikely that PR is responsible for that crash. I suspect that it just exposes it. More likely an issue with instrumentation https://github.com/python/cpython/issues/106012