Skip to content

Specialize calls for Python classes #91095

Description

@Fidget-Spinner
BPO 46939
Nosy @markshannon, @brandtbucher, @Fidget-Spinner
PRs
  • bpo-46939: Specialize calls to Python classes #31707
  • bpo-46939: Specialize calls to Python classes (POSTCALL edition) #31936
  • 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']

    Activity

    1. Fidget-Spinner commented on Mar 6, 2022

      @Fidget-Spinner
      MemberAuthor

      Please see faster-cpython/ideas#267.

      I hope I'm not stepping on anyone's toes here (sorry if I cause any duplicate work)!

    2. transferred this issue fromon Apr 10, 2022
    3. added a commit that references this issue on Jun 22, 2023
    4. erlend-aasland commented on Jun 22, 2023

      @erlend-aasland
      Contributor

      Since this is closed as completed, I assume this implies gh-31707 and gh-31936 should be closed as well. cc. @Fidget-Spinner

    5. markshannon commented on Jun 22, 2023

      @markshannon
      Member

      Done

    6. vstinner commented on Jun 22, 2023

      @vstinner
      Member

      The following change introduced a crash: commit 04492cb

      commit 04492cbc9aa45ac2c12d22083c406a0364c39f5b
      Author: Mark Shannon <mark@hotpy.org>
      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)
      
    7. added a commit that references this issue on Jun 23, 2023
    8. markshannon commented on Jun 23, 2023

      @markshannon
      Member

      It seems unlikely that PR is responsible for that crash. I suspect that it just exposes it.
      More likely an issue with instrumentation #106012

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.11only security fixes

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions