Closed Bug 1619352 Opened 6 years ago Closed 1 year ago

Investigate validation errors in `telemetry.crash` for `#/environment`

Categories

(Data Platform and Tools :: General, defect, P4)

defect
Points:
2

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: wlach, Unassigned)

References

Details

(Whiteboard: [dataquality])

https://datastudio.google.com/u/0/reporting/1MKUu478GKR7myUUe5eItvyCpxP5TBIqm/page/QDQ4

Validation errors in telemetry.crash for #/environment reached 309k in the last 28 days.

I will look into this.

Flags: needinfo?(wlachance)
No longer depends on: 1614419
Flags: needinfo?(wlachance)

Did up a query in redash, a cursory glance indicates that the error is usually that there is no build metadata. These pings seem highly useless (almost no information):

https://sql.telemetry.mozilla.org/queries/68798/source

:gsvelto, do you know how we might be generating such pings?

Flags: needinfo?(gsvelto)

I've poked through the data a bit and it seems to me that those are all main crash pings (i.e. processType is set to main) which means they were sent by the crashreporter client directly. In that case if the ping is almost empty it's because the .extra file was borked. This can happen especially during OOM crashes. That being said I can see pings where there's quite a bit of data in the ping but the environment field is empty.

Since the TelemetryEnvironment annotation should contain JSON we parse it and use it to populate that field. If we fail parsing the JSON data in that annotation then we won't populate the field at all.

At the crash reporter level this is a typical case of JSON-within-JSON which makes things complicated. Do we have a feeling of how many of these crashes are missing that field compared to the total amount of main-process crash pings we receive?

Flags: needinfo?(gsvelto)

I think I know how I could figure out what's going wrong. Is it possible to pull out of this data a list of all the minidumpSha256Hash values for these pings? Armed with the list I could look up corresponding crashes on Socorro and see what's in the environment. The reason why I'm asking for all of them is that we usually have two order of magnitude less crash reports than crash pings so searching a handful by hand won't cut it.

Flags: needinfo?(wlachance)

(In reply to Gabriele Svelto [:gsvelto] from comment #3)

I think I know how I could figure out what's going wrong. Is it possible to pull out of this data a list of all the minidumpSha256Hash values for these pings? Armed with the list I could look up corresponding crashes on Socorro and see what's in the environment. The reason why I'm asking for all of them is that we usually have two order of magnitude less crash reports than crash pings so searching a handful by hand won't cut it.

Hi there, sorry for the delay, I think this query should cover your needs:

https://sql.telemetry.mozilla.org/queries/68985/source

I used this technique to extract the minidumpSha256Hash values: https://wlach.github.io/blog/2019/10/using-bigquery-javascript-udfs-to-analyze-firefox-telemetry-for-fun-profit/

Flags: needinfo?(wlachance)

Excellent thanks, I got hang of a number of crashes that have corresponding entries on Socorro to analyze, this is one for example.

Points: --- → 2
Priority: -- → P2
Priority: P2 → P4
Whiteboard: [data-quality] → [dataquality]
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.