You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Interpreter shutdown can deadlock when a daemon thread holds the warnings lock #159485
A daemon thread can be stopped while holding the warnings lock. During interpreter finalization, garbage collection triggers a ResourceWarning, deadlocking the finalizing thread:
I updated the reproducer script in the issue to avoid an unbounded wait (it now just does time.sleep(0.1) like test_threading does). This is more realistic and is fixed by @ZeroIntensity's InterpreterGuard approach. There's no need to guard against waiting forever in a callback like my original reproducer was arguing for. There's still a deadlock even without that and the InterpreterGuard fixes it.
Activity
pythongh-159485: Fix warnings lock deadlock during interpreter shutdown
ngoldbaum commentedon Oct 16, 2026
I updated the reproducer script in the issue to avoid an unbounded wait (it now just does
time.sleep(0.1)liketest_threadingdoes). This is more realistic and is fixed by @ZeroIntensity's InterpreterGuard approach. There's no need to guard against waiting forever in a callback like my original reproducer was arguing for. There's still a deadlock even without that and the InterpreterGuard fixes it.pythongh-159485: Hold an interpreter guard while using the warnings lock
pythongh-159485: Use the public interpreter guard API for the warning…