Skip to content

gh-141473: Speed up subprocess test_communicate_timeout_large_input long tail#149003

Merged
gpshead merged 1 commit intopython:mainfrom
gpshead:fix/test-communicate-timeout-loopback
Apr 26, 2026
Merged

gh-141473: Speed up subprocess test_communicate_timeout_large_input long tail#149003
gpshead merged 1 commit intopython:mainfrom
gpshead:fix/test-communicate-timeout-loopback

Conversation

@gpshead
Copy link
Copy Markdown
Member

@gpshead gpshead commented Apr 26, 2026

Replace the slow reader's 30s sleep with a parent-driven wake over a loopback socket so post-timeout communicate() doesn't block waiting for the child to wake on its own. Worst-case runtime: ~30s -> <1s.

Replace the slow reader's 30s sleep with a parent-driven wake over a
loopback socket so post-timeout communicate() doesn't block waiting
for the child to wake on its own. Worst-case runtime: ~30s -> <1s.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gpshead gpshead self-assigned this Apr 26, 2026
@bedevere-app bedevere-app Bot added awaiting core review tests Tests in the Lib/test dir labels Apr 26, 2026
@gpshead gpshead enabled auto-merge (squash) April 26, 2026 03:46
@gpshead gpshead disabled auto-merge April 26, 2026 03:46
@gpshead gpshead enabled auto-merge (squash) April 26, 2026 03:47
@gpshead gpshead added needs backport to 3.13 bugs and security fixes needs backport to 3.14 bugs and security fixes labels Apr 26, 2026
@gpshead gpshead merged commit e1384cf into python:main Apr 26, 2026
58 checks passed
@miss-islington-app
Copy link
Copy Markdown

Thanks @gpshead for the PR 🌮🎉.. I'm working now to backport this PR to: 3.13, 3.14.
🐍🍒⛏🤖

@bedevere-app
Copy link
Copy Markdown

bedevere-app Bot commented Apr 26, 2026

GH-149004 is a backport of this pull request to the 3.14 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.14 bugs and security fixes label Apr 26, 2026
@bedevere-app
Copy link
Copy Markdown

bedevere-app Bot commented Apr 26, 2026

GH-149005 is a backport of this pull request to the 3.13 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.13 bugs and security fixes label Apr 26, 2026
gpshead added a commit that referenced this pull request Apr 26, 2026
…input long tail (GH-149003) (#149005)

gh-141473: Speed up subprocess test_communicate_timeout_large_input long tail (GH-149003)

gh-141473: Speed up test_communicate_timeout_large_input

Replace the slow reader's 30s sleep with a parent-driven wake over a
loopback socket so post-timeout communicate() doesn't block waiting
for the child to wake on its own. Worst-case runtime: ~30s -> <1s.
(cherry picked from commit e1384cf)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
gpshead added a commit that referenced this pull request Apr 26, 2026
…input long tail (GH-149003) (#149004)

gh-141473: Speed up subprocess test_communicate_timeout_large_input long tail (GH-149003)

gh-141473: Speed up test_communicate_timeout_large_input

Replace the slow reader's 30s sleep with a parent-driven wake over a
loopback socket so post-timeout communicate() doesn't block waiting
for the child to wake on its own. Worst-case runtime: ~30s -> <1s.
(cherry picked from commit e1384cf)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
@bedevere-bot
Copy link
Copy Markdown

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 Debian root 3.14 (tier-1) has failed when building commit 5770df4.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/#/builders/1742/builds/1164) and take a look at the build logs.
  4. Check if the failure is related to this commit (5770df4) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/#/builders/1742/builds/1164

Failed tests:

  • test_tools
  • test.test_concurrent_futures.test_thread_pool

Failed subtests:

  • test_freeze_simple_script - test.test_tools.test_freeze.TestFreeze.test_freeze_simple_script

Summary of the results of the build (if available):

==

Click to see traceback logs
Traceback (most recent call last):
  File "/root/buildarea/3.14.angelico-debian-amd64/build/Lib/test/support/__init__.py", line 859, in gc_collect
    gc.collect()
ResourceWarning: unclosed file <_io.FileIO name=11 mode='wb' closefd=True>


Traceback (most recent call last):
  File "/root/buildarea/3.14.angelico-debian-amd64/build/Tools/freeze/freeze.py", line 494, in <module>
    main()
    ~~~~^^
  File "/root/buildarea/3.14.angelico-debian-amd64/build/Tools/freeze/freeze.py", line 362, in main
    mf.import_hook(mod)
    ~~~~~~~~~~~~~~^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in _safe_import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 333, in load_module
    m = self.load_package(fqname, pathname)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 465, in load_package
    self.load_module(fqname, fp, buf, stuff)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 333, in load_module
    m = self.load_package(fqname, pathname)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 465, in load_package
    self.load_module(fqname, fp, buf, stuff)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 442, in scan_code
    self._safe_import_hook(parent.__name__, None, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 387, in _safe_import_hook
    self.import_hook(name, caller, [sub], level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 175, in import_hook
    self.ensure_fromlist(m, fromlist)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 265, in ensure_fromlist
    submod = self.import_module(sub, subname, m)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 442, in scan_code
    self._safe_import_hook(parent.__name__, None, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 387, in _safe_import_hook
    self.import_hook(name, caller, [sub], level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 175, in import_hook
    self.ensure_fromlist(m, fromlist)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 265, in ensure_fromlist
    submod = self.import_module(sub, subname, m)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 333, in load_module
    m = self.load_package(fqname, pathname)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 465, in load_package
    self.load_module(fqname, fp, buf, stuff)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 439, in scan_code
    self._safe_import_hook(name, m, fromlist, level=level)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 171, in import_hook
    m = self.load_tail(q, tail)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 248, in load_tail
    m = self.import_module(head, mname, m)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 333, in load_module
    m = self.load_package(fqname, pathname)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 465, in load_package
    self.load_module(fqname, fp, buf, stuff)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 439, in scan_code
    self._safe_import_hook(name, m, fromlist, level=level)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 333, in load_module
    m = self.load_package(fqname, pathname)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 465, in load_package
    self.load_module(fqname, fp, buf, stuff)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 442, in scan_code
    self._safe_import_hook(parent.__name__, None, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 387, in _safe_import_hook
    self.import_hook(name, caller, [sub], level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 175, in import_hook
    self.ensure_fromlist(m, fromlist)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 265, in ensure_fromlist
    submod = self.import_module(sub, subname, m)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 442, in scan_code
    self._safe_import_hook(parent.__name__, None, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 387, in _safe_import_hook
    self.import_hook(name, caller, [sub], level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 175, in import_hook
    self.ensure_fromlist(m, fromlist)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 265, in ensure_fromlist
    submod = self.import_module(sub, subname, m)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 442, in scan_code
    self._safe_import_hook(parent.__name__, None, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 387, in _safe_import_hook
    self.import_hook(name, caller, [sub], level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 175, in import_hook
    self.ensure_fromlist(m, fromlist)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 265, in ensure_fromlist
    submod = self.import_module(sub, subname, m)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 333, in load_module
    m = self.load_package(fqname, pathname)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 465, in load_package
    self.load_module(fqname, fp, buf, stuff)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 416, in scan_code
    self._safe_import_hook(name, m, fromlist, level=0)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 333, in load_module
    m = self.load_package(fqname, pathname)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 465, in load_package
    self.load_module(fqname, fp, buf, stuff)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 439, in scan_code
    self._safe_import_hook(name, m, fromlist, level=level)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 372, in _safe_import_hook
    self.import_hook(name, caller, level=level)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 170, in import_hook
    q, tail = self.find_head_package(parent, name)
              ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 226, in find_head_package
    q = self.import_module(head, qname, parent)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 320, in import_module
    m = self.load_module(fqname, fp, pathname, stuff)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 354, in load_module
    self.scan_code(co, m)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 449, in scan_code
    self.scan_code(c, m)
    ~~~~~~~~~~~~~~^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 405, in scan_code
    for what, args in scanner(co):
                      ~~~~~~~^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/modulefinder.py", line 396, in scan_opcodes
    for name, level, fromlist in dis._find_imports(co):
                                 ~~~~~~~~~~~~~~~~~^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/dis.py", line 1006, in _find_imports
    opargs = [(op, arg) for _, _, op, arg in _unpack_opargs(co.co_code)
                                             ~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/dis.py", line 944, in _unpack_opargs
    deop = _deoptop(op)
  File "/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/lib/python3.14/dis.py", line 216, in _deoptop
    return _all_opmap[deoptmap[name]] if name in deoptmap else op
                      ~~~~~~~~^^^^^^
KeyError: 'LOAD_ATTR'


Traceback (most recent call last):
  File "/root/buildarea/3.14.angelico-debian-amd64/build/Lib/test/test_tools/test_freeze.py", line 35, in test_freeze_simple_script
    executable = helper.freeze(python, scriptfile, outdir)
  File "/root/buildarea/3.14.angelico-debian-amd64/build/Tools/freeze/test/freeze.py", line 169, in freeze
    _run_quiet([python, '-E', FREEZE, '-o', outdir, scriptfile], cwd=outdir)
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/root/buildarea/3.14.angelico-debian-amd64/build/Tools/freeze/test/freeze.py", line 35, in _run_quiet
    return subprocess.run(
           ~~~~~~~~~~~~~~^
        cmd,
        ^^^^
    ...<3 lines>...
        check=True,
        ^^^^^^^^^^^
    )
    ^
  File "/root/buildarea/3.14.angelico-debian-amd64/build/Lib/subprocess.py", line 578, in run
    raise CalledProcessError(retcode, process.args,
                             output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/tmp/test_python_hmjt8a18/tmpvlxh32ch/python-installation/bin/python3', '-E', '/root/buildarea/3.14.angelico-debian-amd64/build/Tools/freeze/freeze.py', '-o', '/tmp/test_python_hmjt8a18/tmpvlxh32ch', '/tmp/test_python_hmjt8a18/tmpvlxh32ch/app.py']' returned non-zero exit status 1.

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

Labels

skip news tests Tests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants