DescriptionCollect unclean shutdown debug information
Introduces PostmortemReportCollector which harvests unclean shutdown debug information to a protocol buffer, wraps this proto inside a barebone minidump and registers the minidump with CrashPad for upload.
Notes:
- This is experimental work that currently only targets the windows canary channel (using an experiment).
- Reports are collected as part of the metrics service client initialization task chain.
- CrashPad handles consent checking/uploading/throttling.
- Manufacturing the minidump is a temporary approach. Longer term, Crashpad should handle this.
- This first version also collects reports for crashes. Longer term, the reports pertaining to crashes will be bundled with the crash reports.
- Stability file naming is revised so a unique file name is used every time.
TODOs for subsequent CL:
- fleshing out the contents of the stability report
- avoid reports from clean exits on the fast exit path
- fix report collection stats version attribution on upgrade
TEST
- launch chrome with the stability instrumentation (--enable-features=StabilityDebugging)
- crash chrome by visiting chrome://chrome://inducebrowsercrashforrealz
- Validate the existence of a stability file in <user-data-dir>/Stability
- start chrome again
- validate "ActivityTracker.Collect.*" metrics chrome://histograms/ActivityTracker
- validate the presence of a new crash at chrome://crashes
BUG=620813
Patch Set 1 #Patch Set 2 : StabilityReport now contains module information. #Patch Set 3 : Unit testing #Patch Set 4 : Create minidump #Patch Set 5 : Minimal collection to proto #
Total comments: 22
Patch Set 6 : Switch from ReporterDelegate to CrashReportDatabase #Patch Set 7 : Add CrashpadInfo to minidump #
Total comments: 2
Patch Set 8 : Address bcwhite comments. #Patch Set 9 : Merge #
Total comments: 54
Patch Set 10 : Address Siggi's comments #Patch Set 11 : Revise stability file naming and wire in the collection #Patch Set 12 : Merge #Patch Set 13 : Merge #Patch Set 14 : Revise changes to metrics provider #Patch Set 15 : Rewire collection as a metrics init task #Patch Set 16 : Merge #Messages
Total messages: 36 (21 generated)
|