Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ANRs after switching to custom Firebase initialization via ContentProvider #6393

Open
nesterenko1pavel opened this issue Oct 21, 2024 · 1 comment

Comments

@nesterenko1pavel
Copy link

[READ] Step 1: Are you in the right place?

Yes

[REQUIRED] Step 2: Describe your environment

  • Android Studio Hedgehog | 2023.1.1 Patch
  • firebase-bom = "29.3.0"

[REQUIRED] Step 3: Describe the problem

Steps to reproduce:

After changes in application (according to Take Control of Your Firebase Init on Android) i.e. after custom ContentProvider was created I started getting crashes in crashlytics. There are 10k crashes so far. But problem dose not occur locally - I tried a lot different devices but without success to reproduce.

Relevant Code: DynamicContentProvider

override fun onCreate(): Boolean {
    val nonNullableContext = context ?: return false

    val firebaseSecuredWrapper = FirebaseSecuredWrapper(...)

    val model = firebaseSecuredWrapper.get()

    val options = if (model != null) {
        FirebaseOptions.Builder()
            .setGcmSenderId(model.gcmSenderId)
            .setApiKey(model.apiKey)
            .setApplicationId(model.applicationId)
            .setStorageBucket(model.storageBucket)
            .setProjectId(model.projectId)
            .build()
    } else {
        FirebaseOptions.fromResource(nonNullableContext)
    }

    FirebaseApp.initializeApp(nonNullableContext, requireNotNull(options))

    return false
}

I am getting Triggered ANR Root blocking at my.application.provider.DynamicContentProvider.onCreate(DynamicContentProvider.kt:45), i.e at FirebaseApp.initializeApp(nonNullableContext, requireNotNull(options))

Messages from crashlytics:

          main (runnable):tid=1 systid=8338 
       at java.lang.String.concat(Native method)
       at com.google.firebase.crashlytics.internal.common.ExecutorUtils.addDelayedShutdownHook(ExecutorUtils.java:96)
       at com.google.firebase.crashlytics.internal.common.ExecutorUtils.addDelayedShutdownHook(ExecutorUtils.java:87)
       at com.google.firebase.crashlytics.internal.common.ExecutorUtils.buildSingleThreadExecutorService(ExecutorUtils.java:40)
       at com.google.firebase.crashlytics.FirebaseCrashlytics.init(FirebaseCrashlytics.java:87)
       at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:57)
       at com.google.firebase.components.ComponentRuntime.lambda$discoverComponents$0(ComponentRuntime.java:140)
       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 my.application.provider.DynamicContentProvider.onCreate(DynamicContentProvider.kt:45)
          main (runnable):tid=1 systid=11199 
       at com.google.firebase.crashlytics.CrashlyticsRegistrar.getComponents(CrashlyticsRegistrar.java:39)
       at com.google.firebase.tracing.ComponentMonitor.processRegistrar(ComponentMonitor.java:28)
       at com.google.firebase.components.ComponentRuntime.discoverComponents(ComponentRuntime.java:117)
       at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:99)
       at com.google.firebase.components.ComponentRuntime.<init>(ComponentRuntime.java:46)
       at com.google.firebase.components.ComponentRuntime$Builder.build(ComponentRuntime.java:387)
       at com.google.firebase.FirebaseApp.<init>(FirebaseApp.java:439)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:296)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
       at my.application.provider.DynamicContentProvider.onCreate(DynamicContentProvider.kt:45)
          main (runnable):tid=1 systid=5685 
       at java.util.Formatter$FormatSpecifier.precision(Formatter.java:2989)
       at java.util.Formatter$FormatSpecifier.<init>(Formatter.java:3042)
       at java.util.Formatter$FormatSpecifierParser.<init>(Formatter.java:2804)
       at java.util.Formatter.parse(Formatter.java:2737)
       at java.util.Formatter.format(Formatter.java:2686)
       at java.util.Formatter.format(Formatter.java:2640)
       at java.lang.String.format(String.java:4068)
       at com.google.firebase.concurrent.CustomThreadFactory.newThread(CustomThreadFactory.java:50)
       at java.util.concurrent.ThreadPoolExecutor$Worker.<init>(ThreadPoolExecutor.java:639)
       at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:929)
       at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1362)
       at com.google.firebase.concurrent.DelegatingScheduledExecutorService.execute(DelegatingScheduledExecutorService.java:104)
       at com.google.android.gms.tasks.Tasks.call(Tasks.java:5)
       at com.google.firebase.heartbeatinfo.DefaultHeartBeatController.registerHeartBeat(DefaultHeartBeatController.java:62)
       at com.google.firebase.FirebaseApp.initializeAllApis(FirebaseApp.java:608)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:300)
       at com.google.firebase.FirebaseApp.initializeApp(FirebaseApp.java:264)
       at my.application.provider.DynamicContentProvider.onCreate(DynamicContentProvider.kt:45)
@google-oss-bot
Copy link
Contributor

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants