Open
Bug 1949178
Opened 1 month ago
Updated 1 month ago
Re-enable capturing minidumps of child shutdown hangs after OOP crash generation lands
Categories
(Toolkit :: Crash Reporting, task)
Toolkit
Crash Reporting
Tracking
()
NEW
People
(Reporter: gsvelto, Unassigned)
References
(Depends on 1 open bug)
Details
To simplify landing bug 1620998 does not contain the code required to generate minidumps from child process shutdown hangs. These are only used in nightly and only looked at by a small number of people so this felt like a reasonable compromise, but we need to re-enable them as soon as possible. This is not only required to capture those hangs but for all future uses where we might want to capture a minidump of a process without crashing it (a long requested feature which is only half-implemented at the moment). This requires a bit of extra machinery compared to how it worked previously:
- First of all we need to add a new message to request the dumps, this should carry the platform-specific process ID of the process we need to dump, as well as the optional thread ID in case we want to flag a specific thread as "responsible" for the dump.
- On Windows and Linux dumping should happen via the regular Breakpad facilities, Linux processes need no further changes as they already allow themselves to be ptrace()d by the crash helper process.
- On macOS things are a bit more complex. In order to dump a macOS process the crash helper needs to be able to access its task's mach port. In the current setup the Breakpad exception handler will send the mach port from the child to the crash helper at the point of crash. Since we might need the port earlier we need to add an additional initialization step for child processes on macOS. Upon startup each child process should send a mach message to the crash helper with its own task port. Given our IPC works over AF_UNIX sockets this will have to happen asynchronously and be handled separately by the crash helper. The upside of all this complexity is that we'll need this bit of machinery to get rid of the Breakpad exception handler down the line.
You need to log in
before you can comment on or make changes to this bug.
Description
•