[cross-posting to dev-tech-gfx and crash-reporting-wg]
Hello all,
I recently noticed that we have two different uptime measures in crashes
which make things confusing. For starters what Socorro calls "Uptime" in
a crash Details' tab is computed by subtracting the time of application
startup from the time when the crash occurred. Because it uses absolute
time values it can be inconsistent due to clock jumps. Then we have the
confusingly-named UptimeTS field which is a measure of the main process'
uptime. It isn't consistent across all platforms (Windows' includes
standby time in this measure, Linux and macOS do not). It's original
goal was to provide a way to correlate events recorded using TimeStamp
durations (see bug 1240160 [1]).
I'd like to overhaul these values to make them more useful and less
confusing so I propose the following change: the UptimeTS annotation is
removed and replaced with a ProcessUptime annotation that indicates the
uptime of the **crashed process** (not just the main process).
Internally this would still use the TimeStamp class to ensure it's
counted monotonically. This would then be surfaced in Socorro in a more
friendly way so that one can immediately tell it apart from the
application uptime.
As for the "regular" uptime I'm wondering if it would make sense to
remove the StartupTime and CrashTime annotations and replace them with a
single Uptime field that's also recorded monotonically. This would
require more surgery on Socorro's side and I don't know if we only care
about uptime or if the absolute startup and crash times have some other
value during crash analysis.
WDYT?
Gabriele
[1] crash reports and TimeStamp
https://bugzilla.mozilla.org/show_bug.cgi?id=1240160