Open imReker opened 1 year ago
I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
Hi @imReker, thanks for reaching out. Any chance you could share with us a minimal reproducible example of your issue? Thanks!
Hi @imReker, thanks for reaching out. Any chance you could share with us a minimal reproducible example of your issue? Thanks!
I'm sorry this issue happens on product of my company, so I can't provide any example. I already posted ANR log.
I also encounter this ANR. - BOM version : "31.2.0"
main (blocked):tid=1 systid=12070 | waiting to lock <0x0062fd83> (java.lang.Class
Do we have any updates related to this issue?
Hello all, is there anyone who could share with us a minimal reproducible example of the ANR issue? It'll help us alot with out investigation. Thanks!
I cannot supply a minimal reproducible example. We are also getting this crash. 99% is on Huawei and 67% on Android 11 and 33% Android 12. Only split between those two versions.
Attaching the crash logs:
main (blocked):tid=1 systid=19600 | waiting to lock <0x093975f7> (java.lang.Class<com.google.firebase.perf.config.ConfigResolver>) held by thread 37 at com.google.firebase.perf.config.ConfigResolver.getInstance(ConfigResolver.java) at com.google.firebase.perf.FirebasePerfEarly.<init>(FirebasePerfEarly.java:41) at com.google.firebase.perf.FirebasePerfRegistrar.lambda$getComponents$0(FirebasePerfRegistrar.java:75) at com.google.firebase.perf.FirebasePerfRegistrar$$ExternalSyntheticLambda0.create(D8$$SyntheticClass) at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38) at com.google.firebase.tracing.ComponentMonitor$$ExternalSyntheticLambda0.create(D8$$SyntheticClass) at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0$com-google-firebase-components-ComponentRuntime(ComponentRuntime.java:140) at com.google.firebase.components.ComponentRuntime$$ExternalSyntheticLambda1.get(D8$$SyntheticClass) at com.google.firebase.components.Lazy.get(Lazy.java:53) at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:302) at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:292) at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:607) at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300) at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264) at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:249) at com.google.firebase.provider.FirebaseInitProvider.onCreate(FirebaseInitProvider.java:66) at android.content.ContentProvider.attachInfo(ContentProvider.java:2409) at android.content.ContentProvider.attachInfo(ContentProvider.java:2377) at com.google.firebase.provider.FirebaseInitProvider.attachInfo(FirebaseInitProvider.java:58) at android.app.ActivityThread.installProvider(ActivityThread.java:9050) at android.app.ActivityThread.installContentProviders(ActivityThread.java:8552) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:8216) at android.app.ActivityThread.access$2700(ActivityThread.java:299) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2739) at android.os.Handler.dispatchMessage(Handler.java:117) at android.os.Looper.loopOnce(Looper.java:205) at android.os.Looper.loop(Looper.java:293) at android.app.ActivityThread.main(ActivityThread.java:9596) at java.lang.reflect.Method.invoke(Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:586) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1204)
Same here. I guess it happens due to a tracked network call early at app start-up.
main (blocked):tid=1 systid=5411 | waiting to lock <0x0b59dd73> (java.lang.Class<com.google.firebase.perf.config.ConfigResolver>) held by thread 59
at com.google.firebase.perf.config.ConfigResolver.getInstance(SourceFile)
at com.google.firebase.perf.FirebasePerfEarly.<init>(SourceFile)
at com.google.firebase.perf.FirebasePerfRegistrar.lambda$getComponents$0(FirebasePerfRegistrar.java)
at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java)
at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java)
at com.google.firebase.components.Lazy.get(SourceFile)
at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java)
at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java)
at com.google.firebase.FirebaseApp.access$300(FirebaseApp.java)
at com.google.firebase.FirebaseApp$UserUnlockReceiver.onReceive(SourceFile)
at android.app.LoadedApk$ReceiverDispatcher$Args.lambda$getRunnable$0$LoadedApk$ReceiverDispatcher$Args(LoadedApk.java:1564)
at android.app.-$$Lambda$LoadedApk$ReceiverDispatcher$Args$_BumDX2UKsnxLVrE6UJsJZkotuA.run(lambda)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:8056)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
pool-3-thread-1 (blocked):tid=59 systid=7147 | waiting to lock <0x03b518a9> (java.lang.Object) held by thread 1
at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java)
at com.google.firebase.perf.config.RemoteConfigManager.getInitialStartupMillis(RemoteConfigManager.java)
at com.google.firebase.perf.config.RemoteConfigManager.<init>(RemoteConfigManager.java)
at com.google.firebase.perf.config.RemoteConfigManager.<init>(RemoteConfigManager.java)
at com.google.firebase.perf.config.RemoteConfigManager.<clinit>(RemoteConfigManager.java)
at com.google.firebase.perf.config.ConfigResolver.<init>(SourceFile)
at com.google.firebase.perf.config.ConfigResolver.getInstance(SourceFile)
at com.google.firebase.perf.application.AppStateMonitor.<init>(AppStateMonitor.java)
at com.google.firebase.perf.application.AppStateMonitor.<init>(AppStateMonitor.java)
at com.google.firebase.perf.application.AppStateMonitor.getInstance(AppStateMonitor.java)
at com.google.firebase.perf.metrics.NetworkRequestMetricBuilder.<init>(NetworkRequestMetricBuilder.java)
at com.google.firebase.perf.metrics.NetworkRequestMetricBuilder.<init>(NetworkRequestMetricBuilder.java)
at com.google.firebase.perf.metrics.NetworkRequestMetricBuilder.builder(NetworkRequestMetricBuilder.java)
at com.google.firebase.perf.network.FirebasePerfUrlConnection.instrument(FirebasePerfUrlConnection.java)
at com.adobe.marketing.mobile.services.HttpConnectionHandler.<init>(SourceFile)
at com.adobe.marketing.mobile.services.NetworkService.doConnection(SourceFile)
at com.adobe.marketing.mobile.services.NetworkService.access$000(SourceFile)
at com.adobe.marketing.mobile.services.NetworkService$1.run(SourceFile)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:923)
This issue is common. Firebase perf tracks every network request. When an app starts, if FirebaseApp hasn't finished initializing yet, and a network request is made immediately, Firebase perf will also call the FirebaseApp.getInstance() method. This can block FirebaseApp.
Currently, the only solution is to delay the network request until FirebaseApp is initialized. However, some third-party SDKs also trigger network requests automatically at startup, which can be difficult to control.
Do we have a solution or updates for this issue?
We get that in a combination of expo (react native), firebase perf & taboola.
We have a reproducible example.
I only need to clean it up an document it some more. Will post it here by monday next week.
Android version: 12 Firebase version: com.google.firebase:firebase-bom:31.4.0
Steps to reproduce:
Relevant Code: