Justin Cohen 460dbdceae ios: Unblock all signals corresponding to Mach exceptions on crash.
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>
2022-03-22 19:22:14 +00:00
2018-07-10 15:29:34 +00:00
2018-10-01 18:05:23 +00:00
2022-01-19 20:21:19 +00:00
2014-07-30 23:24:58 -04:00
2018-10-17 22:45:45 +00:00

Crashpad

Crashpad is a crash-reporting system.

Documentation

Source Code

Crashpads source code is hosted in a Git repository at https://chromium.googlesource.com/crashpad/crashpad.

Description
A crash-reporting system
Readme Apache-2.0 23 MiB
Languages
C++ 92.5%
Objective-C++ 2.5%
C 2%
Python 1.8%
Assembly 0.9%
Other 0.3%