Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork32k
Description
When running the test suite sequentially (as is done as part of the release process), an interaction between test_imp, test_importlib and subinterpreters is causing test_pickle and test_pickletools to fail. The easiest reproducer::
% ./python -m test test_imp test_importlib test_pickletools0:00:00 load avg: 0.22 Run tests sequentially0:00:00 load avg: 0.22 [1/3] test_imp0:00:00 load avg: 0.22 [2/3] test_importlib0:00:03 load avg: 0.22 [3/3] test_pickletoolstest test_pickletools failed -- Traceback (most recent call last): File "Lib/test/pickletester.py", line 1989, in test_builtin_types s = self.dumps(t, proto) ^^^^^^^^^^^^^^^^^^^^ File "Lib/test/test_pickletools.py", line 11, in dumps return pickletools.optimize(pickle.dumps(arg, proto, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^_pickle.PicklingError: Can't pickle <class 'importlib._bootstrap.BuiltinImporter'>: it's not the same object as importlib._bootstrap.BuiltinImportertest_pickletools failed (1 error)== Tests result: FAILURE ==2 tests OK.1 test failed: test_pickletoolsTotal duration: 4.2 secTests result: FAILURE
The failure happens in both test_pickle and test_pickletools (test_pickletools's traceback is more obvious), afterin the same process running both test_imp and either test_import or test_importlib. Disablingtest_imp.ImportTests.test_create_builtin_subinterp()
makes the tests pass. (This was happening before#102982 as well as after it, so I don't think it is involved here.)
I expect this is an unintentional side-effect of the test, but this wasnot happening in the 3.12.0a6 release, and as far as I can tell the relevant tests haven't changed since before a6. I'm delaying the 3.12.0a7 release until it's clear this isn't a fundamental problem with subinterpreters.
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status
Status