Closed Bug 1696620 Opened 4 years ago Closed 1 year ago

Add additional crash annotations to the crash reports generated by WER

Categories

(Toolkit :: Crash Reporting, enhancement)

Unspecified
Windows
enhancement

Tracking

()

RESOLVED MOVED

People

(Reporter: gsvelto, Unassigned)

References

Details

Attachments

(1 obsolete file)

The WER exception module is only currently writing out a minimum set of crash annotations, these should be augmented with the following which it should be possible to extract from without Gecko:

  • CrashTime: this is just a call to time().
  • StartupTime: this needs to be computed from GetProcessTimes()
  • Memory measurements: these include AvailablePageFile, AvailablePhysicalMemory, TotalPageFile, TotalPhysicalMemory and SystemMemoryUsePercentage. See the code in AnnotateMemoryStatus(). There is no point in recording AvailableVirtualMemory and TotalVirtualMemory because we're taking the measurements outside of the crashed process.
  • Info about the graphics driver: AdapterDeviceID, AdapterDriverVersion, AdapterSubsysID and AdapterVendorID. These might be harder to extract (I need to study the widget code) but would be very nice to add given that we expect crashes to be coming from graphics drivers too.
  • CPUMicrocodeVersion and MemoryErrorCorrection: nice to have but not necessary

I have already added the CrashTime annotation but UptimeTS is notably missing. It should be able to implement it by obtaining the process startup time via GetProcessTimes() like we do in the TimeStamp class.

I discovered that Socorro doesn't use UptimeTS to display Firefox' uptime but rather CrashTime - StartupTime so I'll add StartupTime instead.

The processor rule that figures out the uptime value is really janky and I have no confidence that it's correct or is the best "uptime value" we could have. I'm happy to change it.

The UptimeTS value that we put in crash reports is garbage. It means different things on different platforms and sometimes different things even on the same platform. CrashTime - StartupTime is a better choice ATM because at least it's consistent.

Actually I might just add both StartupTime and UptimeTS and make the latter be CrashTime - StartupTime. It doesn't hurt and then I'm sure that if there are users of both they get whatever field they're looking at.

Assignee: nobody → gsvelto
Status: NEW → ASSIGNED

Ugh, wrong bug, this was meant for bug 1703761.

Attachment #9223593 - Attachment is obsolete: true
Assignee: gsvelto → nobody
Status: ASSIGNED → NEW
No longer blocks: 1682507

We'll deal with this in bug 1874889.

Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → MOVED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: