firebase-android-sdk
firebase-android-sdk copied to clipboard
ANR on app launch at com.google.firebase.perf.config.ConfigResolver.getInstance
Android version: 12 Firebase version: com.google.firebase:firebase-bom:31.4.0
Steps to reproduce:
- Upgrade SDK from 31.0.2 to 31.4.0
- Logout Google Account on phone.
- Every time App opened, ANR at launch screen.
- Downgrade SDK to 31.0.2
- Everything works.
Relevant Code:
"main" prio=5 tid=1 Blocked
| group="main" sCount=1 ucsCount=0 flags=1 obj=0x739d4538 self=0xb4000072c4f58800
| sysTid=14773 nice=-10 cgrp=default sched=0/0 handle=0x72c65a6500
| state=S schedstat=( 1717537768 8052037 143 ) utm=154 stm=17 core=4 HZ=100
| stack=0x7fff3e9000-0x7fff3eb000 stackSize=8188KB
| held mutexes=
at com.google.firebase.perf.config.ConfigResolver.getInstance(unavailable:2)
- waiting to lock <0x0b7f8715> (a java.lang.Class<com.google.firebase.perf.config.ConfigResolver>) held by thread 23
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$$ExternalSyntheticLambda1.create(unavailable:2)
at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
at com.google.firebase.tracing.ComponentMonitor$$ExternalSyntheticLambda0.create(unavailable:4)
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(unavailable:4)
at com.google.firebase.components.Lazy.get(Lazy.java:53)
- locked <0x0fb31a2a> (a com.google.firebase.components.Lazy)
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:606)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:299)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:263)
at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:248)
- locked <0x07b7201b> (a java.lang.Object)
at com.test.InitProvider.onCreate(InitProvider.kt:26)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2516)
at android.content.ContentProvider.attachInfo(ContentProvider.java:2486)
at android.app.ActivityThread.installProvider(ActivityThread.java:8226)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:7728)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:7482)
at android.app.ActivityThread.access$1600(ActivityThread.java:310)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2281)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8669)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
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"
- Every time App opened, ANR at launch screen.
main (blocked):tid=1 systid=12070 | waiting to lock <0x0062fd83> (java.lang.Class<com.google.firebase.perf.config.ConfigResolver>) held by thread 21
at com.google.firebase.perf.config.ConfigResolver.getInstance(unavailable:2)
at com.google.firebase.perf.FirebasePerfEarly.
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.
Hey folks, here's a reproducible example: https://github.com/stroeer/firebase-taboola-arn-example
We're using the Firebase Perf SDK with Taboola and a Webview, which results in the deadlock upon startup. Currently this prevents us from using the Perf SDK on Android.
What we do is
- we render a webview when the app starts
- we apply some Taboola APIs too that Webview
it seems to me that when we do that, starting with the second launch of the app, Taboola does something (potentially a network request) that will result in a deadock for Firebase.
Note that we write TCF Consent (GDPR / Eurpoean consent starndard) to the preferences, otherwise Taboola won't cause the problem (it might not be doing anything because of privacy legislation unless allowed to).
Hi imReker, thanks for reaching out. Any chance you could share with us a minimal reproducible example of your issue? Thanks!
@argzdev example is here ^ if you have any questions here feel free to contact me directly
I also sent this to the folks over at Taboola. This is quite of a big one, currently, there is now way to use both, Taboola and Firebase Perf at the same time, there's a 100%, fully predictable crash rate. @argzdev if you are interested I can connect someone from Taboola with someone at Firebase?
In a now deleted comment in Taboolas Support Forums
<provider
android:authorities="${applicationId}.firebaseinitprovider"
tools:replace="android:initOrder"
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:exported="false"
android:initOrder="301"/>
they suggested changing the Init Prio, which yielded some positive results for us, but this is a highly dangerous thing to do. When this fails, you will have NO REPORTING AT ALL for users that get a 100% crash rate.
But it is another insight to the problem and the reasons for it
I also face the same issue when upgrade firebase to 1.9.20
sub thread:
com.google.firebase.perf.config.ConfigResolver.getInstance (ConfigResolver.java:86)
com.google.firebase.perf.FirebasePerfEarly.
main thread is locked:
com.google.firebase.perf.application.AppStateMonitor.getInstance (AppStateMonitor.java:85)
com.google.firebase.perf.metrics.NetworkRequestMetricBuilder.
why this issue not happend in the old version 18.2.5? What's update in the new version????
@google-oss-bot
Can you check if you are able to see/reproduce this issue on the latest version of the Firebase performance? This part of the code where ConfigResolver is initialized is very light weighted. So, we don't expect anything to slow down the initialization. So, wanted to check if the latest version has this issue.
Can you check if you are able to see/reproduce this issue on the latest version of the Firebase performance? This part of the code where ConfigResolver is initialized is very light weighted. So, we don't expect anything to slow down the initialization. So, wanted to check if the latest version has this issue.
1.19.21 also has this problem, it seems that after upgrade, firebase initialize becomes slow.
Hey @imReker. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.
If you have more information that will help us get to the bottom of this, just add a comment!
Hey @imReker. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.
If you have more information that will help us get to the bottom of this, just add a comment!
Shutup bot. Guys in this thread already shared reproducible example
https://github.com/firebase/firebase-android-sdk/issues/4831#issuecomment-1713100691
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.
What's the best way to wait for FirebaseApp initialisation?
FirebaseRemoteConfig has an .ensureInitialized() method, but I can't find anything similar for firebase-perf. Do we just need to wait for FirebaseRemoteConfig?
In our case, we're getting the same ANR, but it's happening before we reach App.tsx (or at least before it logs anything to the console), so I imagine we'll probably need to do it in our MainActivity.
This is causing us trouble as well, We want to defer FirebaseApp initialisation, however since OkHttp calls are instrumented, It makes the call to FirebaseApp.getInstance in a deadlock situation if our own FirebaseApp.initializeApp() coincides,
There needs to a check in OkHttp Instrumentation to not invoke this until FirebaseApp is initialised, some kind of user flag either in manifest to signify this.
Stacktrace
DefaultDispatcher-worker-2 (blocked):tid=20 systid=3194 | waiting to lock <0x0605d9c8> (java.lang.Class<QK>) held by thread 22
at com.google.firebase.perf.config.ConfigResolver.e(ConfigResolver.java:3)
at com.google.firebase.perf.FirebasePerfEarly.<init>(FirebasePerfEarly.java:41)
at com.google.firebase.perf.application.AppStateMonitor.registerActivityLifecycleCallbacks(AppStateMonitor.java:120)
at com.google.firebase.perf.FirebasePerfEarly.<init>(FirebasePerfEarly.java:45)
at com.google.firebase.perf.FirebasePerfRegistrar.lambda$getComponents$0(FirebasePerfRegistrar.java:75)
at com.google.firebase.heartbeatinfo.DefaultHeartBeatController$$ExternalSyntheticLambda0.m(R8$$SyntheticClass:15)
at com.google.firebase.tracing.ComponentMonitor.lambda$processRegistrar$0(ComponentMonitor.java:38)
at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:160)
at com.google.firebase.components.Lazy.get(Lazy.java:53)
at com.google.firebase.components.ComponentRuntime.doInitializeEagerComponents(ComponentRuntime.java:322)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(ComponentRuntime.java:312)
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.viewlift.hoichoi.datasource.startup.FirebaseInitializer.initializeFirebase(FirebaseInitializer.kt:23)
at com.viewlift.hoichoi.datasource.startup.FirebaseInitializer.create(FirebaseInitializer.kt:17)
at com.viewlift.hoichoi.datasource.startup.FirebaseInitializer.create(FirebaseInitializer.kt:15)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:180)
at androidx.startup.AppInitializer.doInitialize(AppInitializer.java:138)
at androidx.startup.AppInitializer.initializeComponent(AppInitializer.java:117)
at com.viewlift.hoichoi.AppInitialTask$initializeComponent$1.invokeSuspend(AppInitialTask.kt:21)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.java:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
main (blocked):tid=1 systid=3138 | waiting to lock <0x0ed5584f> (java.lang.Object) held by thread 20
at com.google.firebase.FirebaseApp$GlobalBackgroundStateListener.onBackgroundStateChanged(FirebaseApp.java:708)
at com.google.android.gms.common.api.internal.BackgroundDetector.zza(com.google.android.gms:play-services-basement@@18.5.0:3)
at com.google.android.gms.common.api.internal.BackgroundDetector.onTrimMemory(com.google.android.gms:play-services-basement@@18.5.0:3)
at android.app.Application.onTrimMemory(Application.java:287)
at android.app.ActivityThread.handleTrimMemory(ActivityThread.java:6256)
at android.app.ActivityThread.access$1100(ActivityThread.java:237)
at android.app.ActivityThread$ApplicationThread.lambda$scheduleTrimMemory$0(ActivityThread.java:1619)
at android.app.-$$Lambda$ActivityThread$ApplicationThread$tUGFX7CUhzB4Pg5wFd5yeqOnu38.accept(lambda)
at com.android.internal.util.function.pooled.PooledLambdaImpl.doInvoke(PooledLambdaImpl.java:278)
at com.android.internal.util.function.pooled.PooledLambdaImpl.invoke(PooledLambdaImpl.java:201)
at com.android.internal.util.function.pooled.OmniFunction.run(OmniFunction.java:97)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:972)
at android.view.Choreographer.doCallbacks(Choreographer.java:796)
at android.view.Choreographer.doFrame(Choreographer.java:733)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:957)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
DefaultDispatcher-worker-3 (blocked):tid=22 systid=3195 | waiting to lock <0x0ed5584f> (java.lang.Object) held by thread 20
at com.google.firebase.FirebaseApp.getInstance(FirebaseApp.java:173)
at com.google.firebase.perf.config.RemoteConfigManager.getInitialStartupMillis(RemoteConfigManager.java:93)
at com.google.firebase.perf.config.RemoteConfigManager.<init>(RemoteConfigManager.java:85)
at com.google.firebase.perf.config.RemoteConfigManager.<clinit>(RemoteConfigManager.java:52)
at com.google.firebase.perf.config.RemoteConfigManager.getInstance(RemoteConfigManager.java:125)
at com.google.firebase.perf.config.ConfigResolver.<init>(ConfigResolver.java:78)
at com.google.firebase.perf.config.ConfigResolver.getInstance(ConfigResolver.java:86)
at com.google.firebase.perf.application.AppStateMonitor.<init>(AppStateMonitor.java:98)
at com.google.firebase.perf.application.AppStateMonitor.getInstance(AppStateMonitor.java:87)
at com.google.firebase.perf.metrics.NetworkRequestMetricBuilder.<init>(NetworkRequestMetricBuilder.java:92)
at com.google.firebase.perf.metrics.NetworkRequestMetricBuilder.builder(NetworkRequestMetricBuilder.java:84)
at com.google.firebase.perf.network.InstrumentOkHttpEnqueueCallback.<init>(InstrumentOkHttpEnqueueCallback.java:42)
at com.google.firebase.perf.network.FirebasePerfOkHttpClient.enqueue(FirebasePerfOkHttpClient.java:73)
at io.ktor.client.engine.okhttp.OkUtilsKt.execute(OkUtils.kt:30)
at io.ktor.client.engine.okhttp.OkHttpEngine.executeHttpRequest(OkHttpEngine.kt:118)
at io.ktor.client.engine.okhttp.OkHttpEngine.execute(OkHttpEngine.kt:69)
at io.ktor.client.engine.HttpClientEngine$executeWithinCallContext$2.invokeSuspend(HttpClientEngine.kt:169)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.java:113)
at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:89)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:820)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)