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
Local storage retains its thread lock after IPC acquisition fails #2202
LockLocalStorage.__enter__() leaves its thread lock acquired if the IPC lock times out or raises an exception. Since a failed __enter__ does not call __exit__, reusing the same lock object cannot acquire the thread lock again, even after the IPC contention is gone.
Detailed Information
Reproduced on current trunk (bd9cbb3e393bc42f57684481e7c62e9293007584), Python 3.12/macOS. This deterministic reproducer models the documented false return from fasteners.InterProcessLock.acquire() when its timeout expires:
The thread lock should be released before propagating acquisition failure. The same leak occurs if IPC acquisition raises OSError or is interrupted by KeyboardInterrupt.
This is separate from #1975 / #2172, which address leftover lock files after a successful acquisition.
Activity