Implement renderer hang crash dumping on Mac |
||
Issue descriptionOn Windows, the browser creates and uploads minidumps when it detects a hung renderer (via a timer on input event ack latency). It does this using CrashDumpAndTerminateHungChildProcess(), which injects a thread into the target process and calls DumpWithoutCrashing(). On Mac, we can just have the browser generate a minidump by creating a snapshot of the process, since the browser has all child processes' task ports.
,
May 17 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f76a01a0af9389671b663b69c2423cc0b435a59e commit f76a01a0af9389671b663b69c2423cc0b435a59e Author: Robert Sesek <rsesek@chromium.org> Date: Wed May 16 23:59:13 2018 Properly annotate Mac DumpProcessWithoutCrashing() reports. They were missing the snapshot-level annotations (prod, ver, plat, and channel), client ID, and report ID. Bug: 842806 Change-Id: Ic6784728d57e747515197bc45e990cb2bb684834 Reviewed-on: https://chromium-review.googlesource.com/1062807 Reviewed-by: Scott Graham <scottmg@chromium.org> Commit-Queue: Robert Sesek <rsesek@chromium.org> Cr-Commit-Position: refs/heads/master@{#559344} [modify] https://crrev.com/f76a01a0af9389671b663b69c2423cc0b435a59e/components/crash/content/app/crashpad_mac.mm
,
May 18 2018
And http://cl/197152527 for the crash processor change.
,
May 18 2018
Sample hang report from an infinite JS for loop: https://crash.corp.google.com/browse?q=reportid=%276ed1728f4ccc90b5%27 I have noticed, though, that because we do not suspend the process when generating the minidump, if the main thread is making progress (just slowly) then the thread stack will not be very useful. We could switch to suspending the process, but that can be done as a follow-up once we get a sense of the volume. |
||
►
Sign in to add a comment |
||
Comment 1 by bugdroid1@chromium.org
, May 15 2018