Skip to content
Snippets Groups Projects

demandimport: don't delay threading import

Merged Julien Cristau requested to merge topic/stable/demandimport-threading-ignore into branch/stable
  1. Jul 26, 2024
    • Julien Cristau's avatar
      demandimport: don't delay threading import · 63ede7a43a37
      Julien Cristau authored
      A recent cpython change breaks demandimport by importing threading
      locally in importlib.util.LazyLoader.exec_module; add it (plus warnings
      and _weakrefset, which are imported by threading) to demandimport's
      ignore list.
      
      ```
      Traceback (most recent call last):
        File "/usr/bin/hg", line 57, in <module>
          from mercurial import dispatch
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
        File "/usr/lib/python3/dist-packages/hgdemandimport/demandimportpy3.py", line 52, in exec_module
          super().exec_module(module)
        File "<frozen importlib.util>", line 257, in exec_module
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
        File "/usr/lib/python3/dist-packages/hgdemandimport/demandimportpy3.py", line 52, in exec_module
          super().exec_module(module)
        File "<frozen importlib.util>", line 267, in exec_module
      AttributeError: partially initialized module 'threading' has no attribute 'RLock' (most likely due to a circular import)
      ```
      
      Ref: https://github.com/python/cpython/issues/117983
           https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076449
           https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076747
      63ede7a43a37
Loading