mirror of
https://github.com/chromium/crashpad.git
synced 2025-03-09 22:26:06 +00:00
https://crrev.com/c/3401563 introduced logic to guard the cached intermediate dump writer from concurrent exceptions with a first exception wins approach. To prevent the losing exception from returning immediately and terminating the app before the dump is written, the losing thread sleeps indefinitely. In the case where the losing exception is from a call to abort() and the winning exception is a Mach exception, the process will never terminate because abort() will first block all signals on all other threads with a sigprocmask. This prevents the kernel from delivering the signal converted from the Mach exception and will never terminate. This effectively deadlocks the app. Instead, unblock all signals corresponding to all Mach exceptions Crashpad registers for before returning KERN_FAILURE. Bug: crashpad:391 Change-Id: I96c357e98f09e65e70c67125a45b9b04075c2c06 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3518186 Reviewed-by: Mark Mentovai <mark@chromium.org> Reviewed-by: Joshua Peraza <jperaza@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org>
Crashpad
Crashpad is a crash-reporting system.
Documentation
- Project status
- Developing Crashpad: instructions for getting the source code, building, testing, and contributing to the project.
- Crashpad interface documentation
- Crashpad tool man pages
- Crashpad overview design
Source Code
Crashpad’s source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.
Other Links
- Bugs can be reported at the Crashpad issue tracker.
- The Crashpad bots perform automated builds and tests.
- crashpad-dev is the Crashpad developers’ mailing list.
Description
Languages
C++
92.5%
Objective-C++
2.5%
C
2%
Python
1.8%
Assembly
0.9%
Other
0.3%