Skip to content
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 Profile more thread/signal-safe #37101

Merged
merged 3 commits into from
Sep 1, 2020
Merged

make Profile more thread/signal-safe #37101

merged 3 commits into from
Sep 1, 2020

Conversation

vtjnash
Copy link
Sponsor Member

@vtjnash vtjnash commented Aug 18, 2020

Internally these codepaths contain an rwlock on every platform (or are specified that you should hold one). So this adds that lock, and additionally blocks signals on unix for extra protection against deadlock here.

Fixes #35117
Fixes #13294

@vtjnash vtjnash requested a review from Keno August 18, 2020 16:38
@vtjnash vtjnash force-pushed the jn/signalsafe_profile branch 3 times, most recently from 12cf59a to 85c87a0 Compare August 26, 2020 01:08
This hack, added in 7e95d09, was a
workaround for LLVM3.3 not being able to generate binaries with the
mandatory SEH section information. Now, it is just a potential source of
segfaults in observation.
@vtjnash
Copy link
Sponsor Member Author

vtjnash commented Aug 27, 2020

Investigated the macOS hang overnight and tracked down the version of macOS that introduced that bug—let's see how this does now.

@JeffBezanson JeffBezanson added the multithreading Base.Threads and related functionality label Aug 28, 2020
@vtjnash vtjnash merged commit 3285ee0 into master Sep 1, 2020
@vtjnash vtjnash deleted the jn/signalsafe_profile branch September 1, 2020 16:30
@KristofferC KristofferC mentioned this pull request Oct 21, 2020
15 tasks
Sacha0 added a commit that referenced this pull request Oct 22, 2020
@vchuravy vchuravy mentioned this pull request Jan 21, 2021
27 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
multithreading Base.Threads and related functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

make stacktrace lookup and unwinding more threadsafe Profiler can deadlock on OS X
3 participants