STINNER Victor added the comment: Using attached importlib_sleep.patch, you can *see* the race condition with:
diff --git a/Lib/test/test_import/data/package/__init__.py b/Lib/test/test_import/data/package/__init__.py index a4f2bc3..f07eb11 100644 --- a/Lib/test/test_import/data/package/__init__.py +++ b/Lib/test/test_import/data/package/__init__.py @@ -1,2 +1,3 @@ import package.submodule +print("package: id=%#x" % id(package)) package.submodule Example of output: --- haypo@selma$ ./python -m test -m test_concurrency -v test_import package: id=0x7fb497400d58 package: id=0x7fb49744d458 test test_import failed -- (...) --- Lib/test/test_import/data/package/__init__.py is run twice instead of being run once. A lock is missing somewhere on the package module. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue30891> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com