-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Make ConsoleStream/GeneralRegistry thread-safe #27996
Make ConsoleStream/GeneralRegistry thread-safe #27996
Conversation
Use the same mutex for both `operator<<` overloads. Refs CIVET failure https://civet.inl.gov/job/2295949/ on libMesh/libmesh#3883
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.
Whoa, good catch.
Assuming it's the right catch, this is great... how on Earth did you debug that so quickly? Was it actually easy to reproduce?? |
yea thread sanitizer made it pretty easy
|
Job Documentation on 174d8a9 wanted to post the following: View the site here This comment will be updated on new commits. |
Job Coverage on 174d8a9 wanted to post the following: Framework coverage
Modules coverageCoverage did not change Full coverage reportsReports
This comment will be updated on new commits. |
Ok new one for me to work out. Only triggered this with TSAN with 16 threads
|
I believe that the above is indicative of another significant problem. I've seen those solution invalidity tests fail in threads on occasion |
Pretty sure this is what is killing us using
|
Yea the stack shows the realloc calls |
This way when we release references into the wild we don't have to worry about them ever being invalidated
Wait, does |
iterators are invalidated but not references. From
|
Which makes sense because
|
Oh that's wild. Expanding a deque can force a reallocation of metadata, so iterators get invalidated, but not of data, so references don't get invalidated. My apologies, carry on. |
operator<<
overloads.Refs CIVET failure https://civet.inl.gov/job/2295949/ on libMesh/libmesh#3883
Closes #23926