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
handle pre-thread-init and post-exit signals #26
Comments
From rnk@google.com on May 18, 2012 13:03:04 This is a meta issue for coming up with a bulletproof solution to this problem. We've encountered specific instances of this bug in: issue #359 (alarm signals in thread init) issue #777 (using sigaltstack after free) |
From bruen...@google.com on July 29, 2013 15:20:28 xref issue #1234 Owner: --- |
From bruen...@google.com on October 05, 2013 09:14:37 xref issue #1283 |
This was hit on Travis:
|
b4da8d1 put in a release-build message for this: |
From a discussion about handling signals in threads with no dcontext: During detach, a thread that has already gone native could receive a signal It could be a synchronous signal via some fault or trap in the native code The signal frame is already on the right stack b/c the thread's signal For finding the app's signal handler: we could search the all_threads |
For a thread exiting (non-detach) the proposal is just to block all signals at the start of DR's thread exit. |
xref #3535 |
From derek.br...@gmail.com on February 18, 2009 14:38:22
with NPTL (POSIX) a SYS_kill signal is delivered to a single thread chosen
arbitrarily among those that aren't blocking it (each thread has its own
signal mask). this means a thread can receive a signal during our thread
initialization, before we've set up its dcontext and other structures, in
which case we die.
we also have problems when a signal comes in during process exit after
we've removed our handler: the app then dies ungracefully. technically
that could happen natively too but is much less likely since it exits more
quickly. this is less of an issue for release build and is more of an
annoyance for itimer testing.
Original issue: http://code.google.com/p/dynamorio/issues/detail?id=26
The text was updated successfully, but these errors were encountered: