Closed Bug 1966698 Opened 3 months ago Closed 3 months ago

Crash in [@ kotlin.UninitializedPropertyAccessException: at mozilla.telemetry.glean.private.PingType.setEnabled(PingType.kt:11)]

Categories

(Firefox for Android :: Experimentation and Telemetry, defect, P1)

Unspecified
Android
defect

Tracking

()

RESOLVED FIXED
140 Branch
Tracking Status
firefox138 --- unaffected
firefox139 --- fixed
firefox140 --- fixed

People

(Reporter: aryx, Assigned: janerik)

References

Details

(Keywords: crash, topcrash)

Crash Data

Attachments

(1 file)

16 crashes for Firefox for Android 139.0a1, 140.0a1 and 139.0 betas.

Many crashes from the onboarding screen (new profiles?) but not for this crash: bp-95308dc2-fef6-4da1-81e3-706970250509

Polly, could you investigate this?

Crash report: https://crash-stats.mozilla.org/report/index/addf7506-cac5-4443-9ed4-1d5160250515

Top 10 frames:

0  mozilla.telemetry.glean.private.PingType  setEnabled  PingType.kt:11
1  org.mozilla.fenix.components.metrics.GleanUsageReporting  setEnabled  GleanUsageReporting.kt:7
2  org.mozilla.fenix.components.metrics.GleanUsageReportingMetricsService  start  GleanUsageReportingMetricsService.kt:12
3  org.mozilla.fenix.components.metrics.ReleaseMetricController  start  MetricController.kt:66
4  org.mozilla.fenix.components.MetricsServiceHelperKt  startMetricsIfEnabled  MetricsServiceHelper.kt:75
5  org.mozilla.fenix.onboarding.OnboardingFragment  onFinish  OnboardingFragment.kt:149
6  org.mozilla.fenix.onboarding.OnboardingFragment$$ExternalSyntheticLambda12  invoke  R8$$SyntheticClass:34
7  org.mozilla.fenix.onboarding.view.OnboardingScreenKt$$ExternalSyntheticLambda13  invoke  R8$$SyntheticClass:25
8  org.mozilla.fenix.onboarding.view.OnboardingScreenKt$$ExternalSyntheticLambda5  invoke  R8$$SyntheticClass:3
9  androidx.compose.foundation.ClickableNode$clickPointerInput$3  invoke  Clickable.kt:13
Flags: needinfo?(polly)

The Bugbug bot thinks this bug should belong to the 'Firefox for Android::Experimentation and Telemetry' component, and is moving the bug to that component. Please correct in case you think the bot is wrong.

Component: General → Experimentation and Telemetry

Looks like this user-perceived foreground crash in nightly and beta that has happened on a handful of devices... there is a bit more info in google play's stack trace:

Exception java.lang.RuntimeException: Unable to create application org.mozilla.fenix.FenixApplication: kotlin.UninitializedPropertyAccessException: lateinit property innerPing has not been initialized
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6749)
  at android.app.ActivityThread.access$1500 (ActivityThread.java:248)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2054)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:201)
  at android.os.Looper.loop (Looper.java:288)
  at android.app.ActivityThread.main (ActivityThread.java:7880)
  at java.lang.reflect.Method.invoke
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:548)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1009)
Caused by kotlin.UninitializedPropertyAccessException: lateinit property innerPing has not been initialized
  at mozilla.telemetry.glean.private.PingType.setEnabled (PingType.kt:128)
  at org.mozilla.fenix.components.metrics.GleanUsageReporting.setEnabled (GleanUsageReporting.kt:20)
  at org.mozilla.fenix.components.metrics.GleanUsageReportingMetricsService.start (GleanUsageReportingMetricsService.kt:41)
  at org.mozilla.fenix.components.metrics.ReleaseMetricController.start (MetricController.kt:552)
  at org.mozilla.fenix.components.MetricsServiceHelperKt.startMetricsIfEnabled (MetricsServiceHelper.kt:38)
  at org.mozilla.fenix.FenixApplication.setupInMainProcessOnly (FenixApplication.kt:256)
  at org.mozilla.fenix.FenixApplication.initialize (FenixApplication.kt:171)
  at org.mozilla.fenix.FenixApplication.onCreate (FenixApplication.kt:150)
  at android.app.Instrumentation.callApplicationOnCreate (Instrumentation.java:1212)
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:6744)

Might need some help from the Glean team with this one!
It's pretty low numbers though so probably not one to panic about (:

Looks like the lateinit property innerPing is in this Glean class
Given that its being initialised on a different thread, i suspect a race condition. To avoid this, maybe we could just make this innerPing property optional instead of lateinit and check if it has been initialised before trying to access it?

Flags: needinfo?(polly) → needinfo?(jrediger)

Ah hm, yeah that makes sense. Let me see if I can get that done.

Assignee: nobody → jrediger
Flags: needinfo?(jrediger)
Priority: -- → P1

Actually this is because we were missing a dispatch, which essentially is the check that innerPing exists. I'll fix that.

The bug is linked to a topcrash signature, which matches the following criterion:

  • Top 10 AArch64 and ARM crashes on beta

For more information, please visit BugBot documentation.

Keywords: topcrash
Blocks: 1967754
Status: NEW → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 140 Branch

Fenix/Focus 139 RC3 also got this fix by way of bug 1968193.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: