-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix #41546, make using
thread-safe
#41602
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks so much Jeff! This is exciting! I will pull this patch onto our testing branch and report back :). Thanks again!
With this patch our test suite silently times out after launching tests, which may or may not be progress? 😄 |
@@ -1020,13 +1024,14 @@ function require(uuidkey::PkgId) | |||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems suspect that we want to be holding a lock for this large of a chunk of (user) code, including the include
and package_callbacks
here, but we do need it for all of the shared state, which is quite a bit.
Co-authored-by: Jameson Nash <[email protected]>
2cd4620
to
3eae248
Compare
use more precision when handling loading lock, merge with TOML lock (since we typically are needing both, sometimes in unpredictable orders), and unlock before call most user code Co-authored-by: Jameson Nash <[email protected]> (cherry picked from commit 3d4b213)
julia -e 'import Pkg; Pkg.test("Revise";coverage=false, test_args=["New files & Requires.jl"])' Revise can work around this specific problem by adding ~0.5s sleeps, but that only seems to work when you're not tracking code-coverage (when you are, the tests just hang inside a |
I believe this commit was responsible for stalling HDF5.jl's nightly testing for the past two months: The symptom was that the CI would stall and eventually timeout after 6 hours. The intermediate solution was to add a 20 minute timeout to CI:
|
Possibly related to #43339 (comment) |
use more precision when handling loading lock, merge with TOML lock (since we typically are needing both, sometimes in unpredictable orders), and unlock before call most user code Co-authored-by: Jameson Nash <[email protected]>
use more precision when handling loading lock, merge with TOML lock (since we typically are needing both, sometimes in unpredictable orders), and unlock before call most user code Co-authored-by: Jameson Nash <[email protected]>
fix #41546
I'm not sure if
identify_package
needs locking as well.