-
-
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
frequent segfault in threads tests in GC #53350
Labels
ci
Continuous integration
GC
Garbage collector
multithreading
Base.Threads and related functionality
Comments
vtjnash
added
multithreading
Base.Threads and related functionality
GC
Garbage collector
ci
Continuous integration
labels
Feb 15, 2024
This was referenced Feb 15, 2024
KristofferC
pushed a commit
that referenced
this issue
Feb 26, 2024
This aims to slightly simplify the synchronization by making `n_threads_marking` the sole memory location of relevance for it, it also removes the fast path, because being protected by the lock is quite important so that the observed gc state arrays are valid. Fixes: #53350 Fixes: #52757 Maybe fixes: #53026 Co-authored-by: Jameson Nash <[email protected]> (cherry picked from commit a96726b)
tecosaur
pushed a commit
to tecosaur/julia
that referenced
this issue
Mar 4, 2024
This aims to slightly simplify the synchronization by making `n_threads_marking` the sole memory location of relevance for it, it also removes the fast path, because being protected by the lock is quite important so that the observed gc state arrays are valid. Fixes: JuliaLang#53350 Fixes: JuliaLang#52757 Maybe fixes: JuliaLang#53026 Co-authored-by: Jameson Nash <[email protected]>
mkitti
pushed a commit
to mkitti/julia
that referenced
this issue
Mar 7, 2024
This aims to slightly simplify the synchronization by making `n_threads_marking` the sole memory location of relevance for it, it also removes the fast path, because being protected by the lock is quite important so that the observed gc state arrays are valid. Fixes: JuliaLang#53350 Fixes: JuliaLang#52757 Maybe fixes: JuliaLang#53026 Co-authored-by: Jameson Nash <[email protected]>
As far as I understand, this fix is included in 1.10.2, but I've been experiencing the same crash on 1.10.2:
|
Judging by the d3c8eb9 commit from #53714, I believe the fix is only in 1.10.3. @KristofferC is that correct? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
ci
Continuous integration
GC
Garbage collector
multithreading
Base.Threads and related functionality
The gc is frequently segfaulting during the GC tests, as seen for example in the core dump here: https://buildkite.com/julialang/julia-master/builds/33633#018da2eb-0a9c-4bc8-b9af-7f5c1cd8fa99
The GC-worker thread is seen trying to access GC state outside of when that seems to be legal, resulting in a unpredictable segfault when the TSAN violation occurs here on the
gc_all_tls_states
variable usage occurs ingc_should_mark
. Note that GC has exited already here on the master thread and it has resumed running code, while the worker thread is still trying to join marking:The text was updated successfully, but these errors were encountered: