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

i#4640: Pass static "client" faults to the app #4661

Merged
merged 6 commits into from
Jan 11, 2021

Conversation

derekbruening
Copy link
Contributor

A fault in the executable that has a statically-linked client and DR
is currently reported as a client crash, even though we have no way to
distinguish client code from app code in such a situation. We change
that here to invoke execute_native_handler(), which solves problems
where the application has a fault handler in place and a tool or other
mechanism that generates faults during DR init or other points.

I tried to reproduce this by making a static version of
api.detach_signal but it requires a fault-generating allocator
replacement (hit by droption and other places that use the system
allocator) or something similar, which is non-trivial to replicate in
a small test. I did test on the original proprietary application.

Fixes #4640

A fault in the executable that has a statically-linked client and DR
is currently reported as a client crash, even though we have no way to
distinguish client code from app code in such a situation.  We change
that here to invoke execute_native_handler(), which solves problems
where the application has a fault handler in place and a tool or other
mechanism that generates faults during DR init or other points.

I tried to reproduce this by making a static version of
api.detach_signal but it requires a fault-generating allocator
replacement (hit by droption and other places that use the system
allocator) or something similar, which is non-trivial to replicate in
a small test.  I did test on the original proprietary application.

Fixes #4640
@derekbruening
Copy link
Contributor Author

Ah, the failures are api.static_crash, due to needing #1921 init-time-signal fixes I had in the same development tree when doing most of my testing. I'll put those in first and then merge here.

@derekbruening derekbruening merged commit f0c94c8 into master Jan 11, 2021
@derekbruening derekbruening deleted the i4640-static-exe-faults-to-app branch January 11, 2021 20:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Static-linked DR makes all SIGSEGV in exe fatal, thwarting app or client handlers
2 participants