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
Appears to be introduced in 6.103.4 and existing until the current version (6.108.2) but appears to happen specifically in our network-isolated environments (like a network-jailed build container). When doing deep level logging of the python interpreter, it appears specifically to be blocked during the destruction/cleanup phase, meaning there's either a stray thread or reference not being cleaned up properly when Coverage runs with the pytest hypothesis plugin. My current theory is that the new thread_local() internal cache has mutable structures shared out as references to the thread-local objects themselves because of their mutability instead of handling that thread-local nature entirely within the cache logic. The sharing of that reference means it no longer necessarily abides by thread-safety if a new thread is forked because the stored reference still points at the object (though admittedly thread_local itself has strange enough semantics that perhaps I misunderstand it as well).
I'm attempting to build an actual reproduction of the issue that is easily verifiable, but it may take time to get all of it set up properly and want to get the issue known about in case any others find a similar issue.
The text was updated successfully, but these errors were encountered:
Appears to be introduced in 6.103.4 and existing until the current version (6.108.2) but appears to happen specifically in our network-isolated environments (like a network-jailed build container). When doing deep level logging of the python interpreter, it appears specifically to be blocked during the destruction/cleanup phase, meaning there's either a stray thread or reference not being cleaned up properly when Coverage runs with the pytest hypothesis plugin. My current theory is that the new
thread_local()
internal cache has mutable structures shared out as references to the thread-local objects themselves because of their mutability instead of handling that thread-local nature entirely within the cache logic. The sharing of that reference means it no longer necessarily abides by thread-safety if a new thread is forked because the stored reference still points at the object (though admittedlythread_local
itself has strange enough semantics that perhaps I misunderstand it as well).I'm attempting to build an actual reproduction of the issue that is easily verifiable, but it may take time to get all of it set up properly and want to get the issue known about in case any others find a similar issue.
The text was updated successfully, but these errors were encountered: