STINNER Victor <vstin...@python.org> added the comment:

I close the issue.

I pushed commit 83d46e0622d2efdf5f3bf8bf8904d0dcb55fc322 which should not be 
controversial. In short, the fix is to remove two unused imports :-D

The fix doesn't remove module.__spec__ nor avoid usage of _weakref, it only fix 
this issue (reference leak) by copying code from _bootstrap.py to 
_bootstrap_external.py. In fact, modules like _io were already correctly 
imported by _bootstrap_external._setup(). Only _thread, _weakref and winreg 
imports caused this bug.

I don't think that it's worth it to backport the change to stable branches 3.7 
and 3.8, since stable branches don't use multiphase initialization for 
_weakref. The two unused imports don't cause any harm in 
importlib._bootstrap_external.


> Can I ask why you suddenly want to throw __spec__ objects out due to a leak 
> tied back to _weakref switching to multi-phase initialization?

I was thinking just aloud to try to find a solution for this reference leak.

----------
resolution:  -> fixed
stage: patch review -> resolved
status: open -> closed

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue40050>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to