STINNER Victor <vstin...@python.org> added the comment:
I played with ./configure --with-experimental-isolated-subinterpreters. I tried to run "pip list" in parallel in multiple interpreters. I hit multiple issues: * non-atomic reference count of Python objects shared by multiple interpreters, objects shared via static types for example. * resolve_slotdups() uses a static variable * pip requires _xxsubinterpreters.create(isolated=False): the vendored distro package runs the lsb_release command with subprocess. * Race conditions in PyType_Ready() on static types: * Objects/typeobject.c:5494: PyType_Ready: Assertion "(type->tp_flags & (1UL << 13)) == 0" failed * Race condition in add_subclass() * parser_init() doesn't support subinterpreters * unicode_dealloc() fails to delete an interned string in the Unicode interned dictionary => https://bugs.python.org/issue40521#msg383829 To run "pip list", I used: CODE = """ import runpy import sys import traceback sys.argv = ["pip", "list"] try: runpy.run_module("pip", run_name="__main__", alter_sys=True) except SystemExit: pass except Exception as exc: traceback.print_exc() print("BUG", exc) raise """ ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue40512> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com