-
Notifications
You must be signed in to change notification settings - Fork 653
Closed
Labels
Description
Describe your environment
- Android Studio version: Android Studio Narwhal Feature Drop | 2025.1.2 Patch 1
Build #AI-251.26094.121.2512.13930704, built on August 14, 2025 - Firebase Component: analytics, auth, common, config, crashlytics, messaging
- Component version:
com.google.firebase:firebase-bom:34.3.0
Describe the problem
We see an influx of ANRs in crashlytics. The cashlytics console marks them as "Insight: Lock contention".
The stack traces:
main (blocked)
tid=1 systid=5830 | waiting to lock <0x0bdf9721> (java.lang.Object) held by thread 26
Triggered ANR
Deadlocked
com.google.firebase.FirebaseApp$GlobalBackgroundStateListener.onBackgroundStateChanged (FirebaseApp.java:708)
androidx.fragment.app.FragmentActivity.onCreate (FragmentActivity.java:216)
com.opera.celopay.ui.MainActivity.onCreate (MainActivity.kt:49)
android.app.Activity.performCreate (Activity.java:9064)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:902)
And from the background thread:
pool-3-thread-1 (blocked)
tid=26 systid=5876 | waiting to lock <0x02c59746> (com.google.android.gms.common.api.internal.c) held by thread 1
Deadlocked
com.google.android.gms.common.api.internal.BackgroundDetector.initialize (com.google.android.gms:play-services-basement@@18.5.0:1)
com.google.firebase.FirebaseApp.initializeApp (FirebaseApp.java:249)
com.opera.celopay.StandaloneCeloPayDependencies.getFirebaseApp (StandaloneCeloPayDependencies.java:44)
com.opera.celopay.AppModuleKt.buildAppModule$lambda$0$7$0 (AppModule.kt:91)
kotlin.SynchronizedLazyImpl.getValue (LazyJVM.kt:86)
com.opera.celopay.model.firebase.base.LazyEmbeddedFirebaseApp.getValue (LazyEmbeddedFirebaseApp.java:96)
com.opera.celopay.StandaloneCeloPayDependencies.getFirebaseMessaging (StandaloneCeloPayDependencies.java:48)
com.opera.celopay.AppModuleKt.buildAppModule$lambda$0$8 (AppModule.kt:95)
org.koin.core.instance.InstanceFactory.create (InstanceFactory.kt:50)
org.koin.core.scope.Scope.get (Scope.kt:212)
com.opera.celopay.model.firebase.notification.FcmModule_androidKt$buildPlatformFirebaseNotificationModule$lambda$0$0$$inlined$inject$default$1.invoke (FcmModule_android.kt:407)
kotlin.SynchronizedLazyImpl.getValue (LazyJVM.kt:86)
com.opera.celopay.model.firebase.notification.FcmTokenUpdater$fetchFirebaseToken$1.invokeSuspend (FcmTokenUpdater.java:30)
kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith (ContinuationImpl.kt:34)
java.lang.Thread.run (Thread.java:1119)
The background thread is used to fetch and update the FCM token at startup.
Steps to reproduce:
Access the Firebase instance from a background thread and start an activity in the app.