invertase / react-native-firebase

🔥 A well-tested feature-rich modular Firebase implementation for React Native. Supports both iOS & Android platforms for all Firebase services.
https://rnfirebase.io
Other
11.64k stars 2.21k forks source link

🔥Crash when attempting to use the realtime database module and other modules at the same time. #4047

Closed mickael-h closed 3 years ago

mickael-h commented 4 years ago

Issue

I am unsure of the exact circumstances, but when I try to make a push/set/update request in the same function in which I call my own custom modules (which don't contain anything special besides some synchronized blocks), I get this error:

08-04 19:25:44.524 11745 11745 E AndroidRuntime: FATAL EXCEPTION: main
08-04 19:25:44.524 11745 11745 E AndroidRuntime: Process: com.accopilot, PID: 11745
08-04 19:25:44.524 11745 11745 E AndroidRuntime: java.util.concurrent.RejectedExecutionException: Task com.google.android.gms.tasks.zzj@ecdc178 rejected from java.util.concurrent.ThreadPoolExecutor@95e2051[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 21]
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2085)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:848)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1394)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at java.util.concurrent.Executors$DelegatedExecutorService.execute(Executors.java:631)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzi.onComplete(Unknown Source:10)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzr.zza(Unknown Source:19)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzu.setResult(Unknown Source:86)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzo.onSuccess(Unknown Source:9)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzn.run(Unknown Source:4)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzt.execute(Unknown Source:2)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzm.onComplete(Unknown Source:11)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzr.zza(Unknown Source:19)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.zzu.setResult(Unknown Source:86)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.android.gms.tasks.TaskCompletionSource.setResult(Unknown Source:8)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at io.invertase.firebase.database.UniversalFirebaseDatabaseReferenceModule.lambda$update$1(UniversalFirebaseDatabaseReferenceModule.java:64)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at io.invertase.firebase.database.-$$Lambda$UniversalFirebaseDatabaseReferenceModule$wdA3jw9-XmrT4F68Me_vt5SZooI.onComplete(Unknown Source:2)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.google.firebase.database.core.Repo$6.run(Repo.java:406)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java:873)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at android.os.Handler.dispatchMessage(Handler.java:99)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at android.os.Looper.loop(Looper.java:214)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at android.app.ActivityThread.main(ActivityThread.java:7179)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at java.lang.reflect.Method.invoke(Native Method)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
08-04 19:25:44.524 11745 11745 E AndroidRuntime:        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)

This error cannot be caught from the React side, and results in a "Critical Error Occured ! This is embarrassing." white screen being displayed.


Project Files

Javascript

Click To Expand

#### `package.json`: ```json # N/A ``` #### `firebase.json` for react-native-firebase v6: ```json # N/A ```

iOS

Click To Expand

#### `ios/Podfile`: - [ ] I'm not using Pods - [x] I'm using Pods and my Podfile looks like: ```ruby # N/A ``` #### `AppDelegate.m`: ```objc // N/A ```


Android

Click To Expand

#### Have you converted to AndroidX? - [x] my application is an AndroidX application? - [x] I am using `android/gradle.settings` `jetifier=true` for Android compatibility? - [x] I am using the NPM package `jetifier` for react-native compatibility? #### `android/build.gradle`: ```groovy // N/A ``` #### `android/app/build.gradle`: ```groovy // N/A ``` #### `android/settings.gradle`: ```groovy // N/A ``` #### `MainApplication.java`: ```java // N/A ``` #### `AndroidManifest.xml`: ```xml ```


Environment

Click To Expand

**`react-native info` output:** ``` System: OS: Linux 5.3 Ubuntu 18.04.4 LTS (Bionic Beaver) CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz Memory: 722.18 MB / 15.49 GB Shell: 4.4.20 - /bin/bash Binaries: Node: 10.21.0 - /usr/bin/node npm: 6.14.6 - /usr/bin/npm npmPackages: react: 16.9.0 => 16.9.0 react-native: 0.61.5 => 0.61.5 ``` - **Platform that you're experiencing the issue on**: - [ ] iOS - [ ] Android - [ ] **iOS** but have not tested behavior on Android - [x] **Android** but have not tested behavior on iOS - [ ] Both - **`react-native-firebase` version you're using that has this issue:** - `8.2.0` - **`Firebase` module(s) you're using that has the issue:** - `realtime-database 7.3.2` - **Are you using `TypeScript`?** - `N`


mikehardy commented 4 years ago

Reminds me of #3936 - but that was also from you so you're aware of the intracacies there. Seems similar though, incorrect error handling allowing percolation

mickael-h commented 4 years ago

Reminds me of #3936 - but that was also from you so you're aware of the intracacies there. Seems similar though, incorrect error handling allowing percolation

Quite frankly, I wish it was related. But unfortunately, it doesn't appear so. It's actually a crash we've had for a very long time, in various places in our code, every time we would use realtime-database and our module in the same function. Our usual workaround was to wrap the firebase calls into InteractionManager.runAfterInteractions(), or even into setTimeout calls. But it's just a workaround, and the more our app grows, the more these crashes become a problem. We need to find a definitive solution to this. The message hints at a concurrency issue, and this error seems to only appear when calling modules that have some synchronized blocks in them...

luskin commented 4 years ago

@mickael-h this is our #1 crash for our android production app. We are at a loss over here as well. Crashlytics claims it's coming from the line taskCompletionSource.setResult(null) in the file UniversalFirebaseDatabaseReferenceModule.java:

  Task<Void> set(String appName, String dbURL, String path, Object value) {
    TaskCompletionSource<Void> taskCompletionSource = new TaskCompletionSource<>();
    DatabaseReference reference = getDatabaseForApp(appName, dbURL).getReference(path);

    reference.setValue(value, (databaseError, databaseReference) -> {
      if (databaseError != null) {
        taskCompletionSource.setException(
          new UniversalDatabaseException(databaseError.getCode(), databaseError.getMessage(), databaseError.toException())
        );
      } else {
        taskCompletionSource.setResult(null); // <-- CRASH HERE
      }
    });

    return taskCompletionSource.getTask();
  }
mikehardy commented 4 years ago

There are no versions posted, but you guys are posting good information. Can you confirm you are using the most up to date everything (that means an override to firebase-android-sdk bill of materials 25.7.0 at this moment, plus current stable react-native-firebase)?

Can you post the stack trace you have @luskin ? If there were a full thread dump (all threads in the JVM) that would help even more as this is likely a multi-threaded issue.

This looks async / racy to me, so it will take great care to reproduce it. I'm not able to find relevant source so I'm a bit blind as to what exactly is happening in TaskCompletionSource.setResult() - appears to be this package? https://developers.google.com/android/reference/com/google/android/gms/tasks/package-summary - I would imagine it's doing java-level object.wait()/.notify() stuff and it's a shame we can't inspect it (the library aar is minified/obfuscated unfortunately)

luskin commented 4 years ago

Sure thing @mikehardy and as always thank you for the quick response.

Here is the fatal exception:

Fatal Exception: java.util.concurrent.RejectedExecutionException: Task com.google.android.gms.tasks.zzj@51e4a5 rejected from java.util.concurrent.ThreadPoolExecutor@326d07a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]
       at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2086)
       at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:848)
       at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1394)
       at java.util.concurrent.Executors$DelegatedExecutorService.execute(Executors.java:630)
       at com.google.android.gms.tasks.zzi.onComplete(:10)
       at com.google.android.gms.tasks.zzr.zza(:19)
       at com.google.android.gms.tasks.zzu.setResult(:86)
       at com.google.android.gms.tasks.zzo.onSuccess(:9)
       at com.google.android.gms.tasks.zzn.run(:4)
       at com.google.android.gms.tasks.zzt.execute(:2)
       at com.google.android.gms.tasks.zzm.onComplete(:11)
       at com.google.android.gms.tasks.zzr.zza(:19)
       at com.google.android.gms.tasks.zzu.setResult(:86)
       at com.google.android.gms.tasks.TaskCompletionSource.setResult(:8)
       at io.invertase.firebase.database.UniversalFirebaseDatabaseReferenceModule.lambda$set$0(UniversalFirebaseDatabaseReferenceModule.java:47)
       at io.invertase.firebase.database.-$$Lambda$UniversalFirebaseDatabaseReferenceModule$gDtprJ12RWvrdJIdtskPYeaSErQ.onComplete(:2)
       at com.google.firebase.database.core.Repo$6.run(Repo.java:406)
       at android.os.Handler.handleCallback(Handler.java:883)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loop(Looper.java:237)
       at android.app.ActivityThread.main(ActivityThread.java:8016)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)

packages:

    "@react-native-firebase/app": "^8.3.0",
    "@react-native-firebase/auth": "^8.3.1",
    "@react-native-firebase/crashlytics": "^8.3.0",
    "@react-native-firebase/database": "^7.4.1",
    "@react-native-firebase/dynamic-links": "^7.4.1",
    "@react-native-firebase/messaging": "^7.6.1",
    "@react-native-firebase/perf": "^7.3.1",
    "@react-native-firebase/remote-config": "^8.1.1",
....
    "react": "16.13.1",
    "react-native": "0.63.0",

android/build.gradle:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext {
        googlePlayServicesLocationVersion = "17.0.0"
        buildToolsVersion = "29.0.2"
        minSdkVersion = 19
        compileSdkVersion = 29
        targetSdkVersion = 29
        appCompatVersion = "1.1.0"
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.5.3")
        classpath 'com.google.gms:google-services:4.3.3'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.0.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        mavenLocal()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url("$rootDir/../node_modules/react-native/android")
        }
        maven {
            // Android JSC is installed from npm
            url("$rootDir/../node_modules/jsc-android/dist")
        }
        maven {
            // Required for react-native-background-geolocation
            url("${project(':react-native-background-geolocation').projectDir}/libs")
        }
        maven {
            // Required for react-native-background-fetch
            url("${project(':react-native-background-fetch').projectDir}/libs")
        }
        google()
        jcenter()
        maven { url 'https://www.jitpack.io' }
    }
}

Full Stack Trace

See stack trace from one of the crashes

``` Package: com.-----.--------- Version Code: 175 Version Name: 3.2.1 Android: 10 Android Build: QP1A.190711.020 Manufacturer: samsung Model: SM-G975U1 CrashReporter Key: 7693dc2e-f222-4bf3-8d52-255021256fcd Start Date: 2020-08-12T14:20:42.211Z Date: 2020-08-13T13:33:37.033Z java.util.concurrent.RejectedExecutionException: Task com.google.android.gms.tasks.zzj@51e4a5 rejected from java.util.concurrent.ThreadPoolExecutor@326d07a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1] at java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution(ThreadPoolExecutor.java:2086) at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:848) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1394) at java.util.concurrent.Executors$DelegatedExecutorService.execute(Executors.java:630) at com.google.android.gms.tasks.zzi.onComplete(Unknown Source:10) at com.google.android.gms.tasks.zzr.zza(Unknown Source:19) at com.google.android.gms.tasks.zzu.setResult(Unknown Source:86) at com.google.android.gms.tasks.zzo.onSuccess(Unknown Source:9) at com.google.android.gms.tasks.zzn.run(Unknown Source:4) at com.google.android.gms.tasks.zzt.execute(Unknown Source:2) at com.google.android.gms.tasks.zzm.onComplete(Unknown Source:11) at com.google.android.gms.tasks.zzr.zza(Unknown Source:19) at com.google.android.gms.tasks.zzu.setResult(Unknown Source:86) at com.google.android.gms.tasks.TaskCompletionSource.setResult(Unknown Source:8) at io.invertase.firebase.database.UniversalFirebaseDatabaseReferenceModule.lambda$set$0(UniversalFirebaseDatabaseReferenceModule.java:47) at io.invertase.firebase.database.-$$Lambda$UniversalFirebaseDatabaseReferenceModule$gDtprJ12RWvrdJIdtskPYeaSErQ.onComplete(Unknown Source:2) at com.google.firebase.database.core.Repo$6.run(Repo.java:406) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:237) at android.app.ActivityThread.main(ActivityThread.java:8016) at java.lang.reflect.Method.invoke(Method.java:-2) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076) Thread 2: 0 dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2) 1 java.lang.Thread.getStackTrace(Thread.java:1720) 2 java.lang.Thread.getAllStackTraces(Thread.java:1796) 3 com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1137) 4 com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1102) 5 com.microsoft.appcenter.crashes.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.java:20) 6 com.transistorsoft.locationmanager.adapter.BackgroundGeolocation$u0.uncaughtException 7 java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073) 8 java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068) 9 java.lang.Thread.dispatchUncaughtException(Thread.java:2187) Thread 22576: 0 java.lang.Object.wait(Object.java:-2) 1 java.lang.Object.wait(Object.java:442) 2 java.lang.Object.wait(Object.java:568) 3 java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:215) 4 java.lang.Daemons$Daemon.run(Daemons.java:137) 5 java.lang.Thread.run(Thread.java:919) Thread 22577: 0 java.lang.Object.wait(Object.java:-2) 1 java.lang.Object.wait(Object.java:442) 2 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190) 3 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211) 4 java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:271) 5 java.lang.Daemons$Daemon.run(Daemons.java:137) 6 java.lang.Thread.run(Thread.java:919) Thread 22578: 0 java.lang.Thread.sleep(Thread.java:-2) 1 java.lang.Thread.sleep(Thread.java:440) 2 java.lang.Thread.sleep(Thread.java:356) 3 java.lang.Daemons$FinalizerWatchdogDaemon.sleepForMillis(Daemons.java:383) 4 java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:411) 5 java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:323) 6 java.lang.Daemons$Daemon.run(Daemons.java:137) 7 java.lang.Thread.run(Thread.java:919) Thread 22598: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22605: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22606: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22608: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 java.lang.Thread.run(Thread.java:919) Thread 22610: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120) 4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 com.google.android.gms.common.util.concurrent.zza.run 9 java.lang.Thread.run(Thread.java:919) Thread 22614: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:60) 8 com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) 9 java.lang.Thread.run(Thread.java:919) Thread 22616: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:60) 8 com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) 9 java.lang.Thread.run(Thread.java:919) Thread 22618: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:60) 8 com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27) 9 java.lang.Thread.run(Thread.java:919) Thread 22621: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22624: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22627: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22632: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 22644: 0 java.lang.Object.wait(Object.java:-2) 1 java.lang.Object.wait(Object.java:442) 2 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:190) 3 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:211) 4 com.facebook.jni.DestructorThread$1.run(DestructorThread.java:76) Thread 22663: 0 com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java:-2) 1 android.os.Handler.handleCallback(Handler.java:883) 2 android.os.Handler.dispatchMessage(Handler.java:100) 3 com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27) 4 android.os.Looper.loop(Looper.java:237) 5 com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226) 6 java.lang.Thread.run(Thread.java:919) Thread 22683: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22689: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22690: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 android.os.HandlerThread.run(HandlerThread.java:67) Thread 22697: 0 java.lang.Object.wait(Object.java:-2) 1 com.android.okhttp.okio.AsyncTimeout.awaitTimeout(AsyncTimeout.java:325) 2 com.android.okhttp.okio.AsyncTimeout.access$000(AsyncTimeout.java:42) 3 com.android.okhttp.okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:288) Thread 22707: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132) 4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 22708: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132) 4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 com.google.android.gms.common.util.concurrent.zza.run 9 java.lang.Thread.run(Thread.java:919) Thread 25943: 0 java.lang.Object.wait(Object.java:-2) 1 okhttp3.internal.connection.RealConnectionPool.lambda$new$0$RealConnectionPool(RealConnectionPool.java:62) 2 okhttp3.internal.connection.-$$Lambda$RealConnectionPool$Cy61BJKpsrwSB_hQmB_R9MngVNU.run 3 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 4 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 5 java.lang.Thread.run(Thread.java:919) Thread 26224: 0 java.lang.Object.wait(Object.java:-2) 1 okhttp3.internal.connection.RealConnectionPool.lambda$new$0$RealConnectionPool(RealConnectionPool.java:62) 2 okhttp3.internal.connection.-$$Lambda$RealConnectionPool$Cy61BJKpsrwSB_hQmB_R9MngVNU.run 3 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 4 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 5 java.lang.Thread.run(Thread.java:919) Thread 26311: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26313: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26314: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26316: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26318: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26319: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26320: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26323: 0 com.android.org.conscrypt.NativeCrypto.SSL_read(NativeCrypto.java:-2) 1 com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411) 2 com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:583) 3 okio.Okio$2.read(Okio.java:140) 4 okio.AsyncTimeout$2.read(AsyncTimeout.java:237) 5 okio.RealBufferedSource.request(RealBufferedSource.java:72) 6 okio.RealBufferedSource.require(RealBufferedSource.java:65) 7 okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.java:96) 8 okhttp3.internal.http2.Http2Connection$ReaderRunnable.execute(Http2Connection.java:599) 9 okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 10 java.lang.Thread.run(Thread.java:919) Thread 26324: 0 java.lang.Object.wait(Object.java:-2) 1 okio.AsyncTimeout.awaitTimeout(AsyncTimeout.java:362) 2 okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:313) Thread 26325: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120) 4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26327: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26332: 0 android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java:-2) 1 android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:867) 2 android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:439) 3 android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:403) 4 android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:786) 5 com.transistorsoft.locationmanager.logger.TSSQLiteAppender$b.run 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26334: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26338: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26346: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26347: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26348: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.google.android.gms.common.util.concurrent.zza.run 8 java.lang.Thread.run(Thread.java:919) Thread 26350: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 java.lang.Thread.run(Thread.java:919) Thread 26351: 0 java.lang.Object.wait(Object.java:-2) 1 java.lang.Object.wait(Object.java:442) 2 com.google.android.gms.measurement.internal.zzfz.run(com.google.android.gms:play-services-measurement-impl@@17.4.3:25) Thread 26352: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 java.lang.Thread.run(Thread.java:919) Thread 26353: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 java.lang.Thread.run(Thread.java:919) Thread 26354: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26355: 0 com.android.org.conscrypt.NativeCrypto.SSL_read(NativeCrypto.java:-2) 1 com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411) 2 com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:583) 3 okio.Okio$2.read(Okio.java:140) 4 okio.AsyncTimeout$2.read(AsyncTimeout.java:237) 5 okio.RealBufferedSource.request(RealBufferedSource.java:72) 6 okio.RealBufferedSource.require(RealBufferedSource.java:65) 7 okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.java:96) 8 okhttp3.internal.http2.Http2Connection$ReaderRunnable.execute(Http2Connection.java:599) 9 okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 10 java.lang.Thread.run(Thread.java:919) Thread 26356: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120) 4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26357: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26359: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 java.lang.Thread.run(Thread.java:919) Thread 26360: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26361: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.google.android.gms.common.util.concurrent.zza.run 8 java.lang.Thread.run(Thread.java:919) Thread 26362: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) 8 java.lang.Thread.run(Thread.java:919) Thread 26363: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) 8 java.lang.Thread.run(Thread.java:919) Thread 26364: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132) 4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26365: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) 8 java.lang.Thread.run(Thread.java:919) Thread 26366: 0 com.facebook.jni.HybridData$Destructor.deleteNative(HybridData.java:-2) 1 com.facebook.jni.HybridData$Destructor.destruct(HybridData.java:81) 2 com.facebook.jni.HybridData.resetNative(HybridData.java:48) 3 com.facebook.react.bridge.CatalystInstanceImpl$1$1$1$1.run(CatalystInstanceImpl.java:405) 4 android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 java.lang.Thread.run(Thread.java:919) Thread 26367: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26368: 0 java.lang.Object.wait(Object.java:-2) 1 com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:106) 2 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 3 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 4 java.lang.Thread.run(Thread.java:919) Thread 26370: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2109) 3 java.util.concurrent.ArrayBlockingQueue.poll(ArrayBlockingQueue.java:402) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 TB.run(chromium-TrichromeWebViewGoogle.aab-stable-1:2) 8 java.lang.Thread.run(Thread.java:919) Thread 26373: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26374: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26375: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26376: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26377: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230) 2 java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461) 3 java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362) 4 java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26378: 0 com.android.org.conscrypt.NativeCrypto.SSL_read(NativeCrypto.java:-2) 1 com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411) 2 com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:583) 3 okio.Okio$2.read(Okio.java:140) 4 okio.AsyncTimeout$2.read(AsyncTimeout.java:237) 5 okio.RealBufferedSource.request(RealBufferedSource.java:72) 6 okio.RealBufferedSource.require(RealBufferedSource.java:65) 7 okhttp3.internal.http2.Http2Reader.nextFrame(Http2Reader.java:96) 8 okhttp3.internal.http2.Http2Connection$ReaderRunnable.execute(Http2Connection.java:599) 9 okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32) 10 java.lang.Thread.run(Thread.java:919) Thread 26379: 0 java.lang.Object.wait(Object.java:-2) 1 okhttp3.internal.connection.RealConnectionPool.lambda$new$0$RealConnectionPool(RealConnectionPool.java:62) 2 okhttp3.internal.connection.-$$Lambda$RealConnectionPool$Cy61BJKpsrwSB_hQmB_R9MngVNU.run 3 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 4 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 5 java.lang.Thread.run(Thread.java:919) Thread 26380: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120) 4 java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849) 5 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 6 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 7 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 8 java.lang.Thread.run(Thread.java:919) Thread 26381: 0 com.android.org.conscrypt.NativeCrypto.SSL_read(NativeCrypto.java:-2) 1 com.android.org.conscrypt.NativeSsl.read(NativeSsl.java:411) 2 com.android.org.conscrypt.ConscryptFileDescriptorSocket$SSLInputStream.read(ConscryptFileDescriptorSocket.java:583) 3 java.io.DataInputStream.readFully(DataInputStream.java:198) 4 com.google.firebase.database.tubesock.WebSocketReceiver.read(WebSocketReceiver.java:155) 5 com.google.firebase.database.tubesock.WebSocketReceiver.run(WebSocketReceiver.java:48) 6 com.google.firebase.database.tubesock.WebSocket.runReader(WebSocket.java:428) 7 com.google.firebase.database.tubesock.WebSocket.access$000(WebSocket.java:47) 8 com.google.firebase.database.tubesock.WebSocket$2.run(WebSocket.java:143) 9 java.lang.Thread.run(Thread.java:919) Thread 26382: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 com.google.firebase.database.tubesock.WebSocketWriter.writeMessage(WebSocketWriter.java:137) 5 com.google.firebase.database.tubesock.WebSocketWriter.runWriter(WebSocketWriter.java:152) 6 com.google.firebase.database.tubesock.WebSocketWriter.access$000(WebSocketWriter.java:30) 7 com.google.firebase.database.tubesock.WebSocketWriter$1.run(WebSocketWriter.java:47) 8 java.lang.Thread.run(Thread.java:919) Thread 26388: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) 8 java.lang.Thread.run(Thread.java:919) Thread 26389: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) 8 java.lang.Thread.run(Thread.java:919) Thread 26390: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) 8 java.lang.Thread.run(Thread.java:919) Thread 26391: 0 sun.misc.Unsafe.park(Unsafe.java:-2) 1 java.util.concurrent.locks.LockSupport.park(LockSupport.java:190) 2 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2067) 3 java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) 4 java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092) 5 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152) 6 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 7 com.facebook.imagepipeline.core.PriorityThreadFactory$1.run(PriorityThreadFactory.java:51) 8 java.lang.Thread.run(Thread.java:919) Thread 26393: 0 com.facebook.react.bridge.queue.NativeRunnable.run(NativeRunnable.java:-2) 1 android.os.Handler.handleCallback(Handler.java:883) 2 android.os.Handler.dispatchMessage(Handler.java:100) 3 com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:27) 4 android.os.Looper.loop(Looper.java:237) 5 com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226) 6 java.lang.Thread.run(Thread.java:919) Thread 26394: 0 android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2) 1 android.os.MessageQueue.next(MessageQueue.java:336) 2 android.os.Looper.loop(Looper.java:197) 3 com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:226) 4 java.lang.Thread.run(Thread.java:919) ```

mikehardy commented 4 years ago

:thinking: did some digging. My current best guess (subject to change immediately if presented with new information...) is that this is collateral damage from another bug. Stated another way: I think the stack here is related to but not the cause of the problem.

Thoughts:

  1. The thread pool is terminated:

First stack:

08-04 19:25:44.524 11745 11745 E AndroidRuntime: java.util.concurrent.RejectedExecutionException: Task com.google.android.gms.tasks.zzj@ecdc178 rejected from java.util.concurrent.ThreadPoolExecutor@95e2051[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 21]

Second stack:

Fatal Exception: java.util.concurrent.RejectedExecutionException: Task com.google.android.gms.tasks.zzj@51e4a5 rejected from java.util.concurrent.ThreadPoolExecutor@326d07a[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 1]

  1. The stacks (and library source, such as it is with obfuscation) indicate that when we set result, other pending items may now execute, and they do:
       at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:848)
       at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1394)
       at java.util.concurrent.Executors$DelegatedExecutorService.execute(Executors.java:630)
       at com.google.android.gms.tasks.zzi.**onComplete**(:10)               <-- 4. Who is listening?
       at com.google.android.gms.tasks.zzr.zza(:19)
       at com.google.android.gms.tasks.zzu.**setResult**(:86)
       at com.google.android.gms.tasks.zzo.**onSuccess**(:9)                  <-- 3. They succeeded though
       at com.google.android.gms.tasks.zzn.run(:4)
       at com.google.android.gms.tasks.zzt.execute(:2)
       at com.google.android.gms.tasks.zzm.**onComplete**(:11)              <-- 2. Who was listening?
       at com.google.android.gms.tasks.zzr.zza(:19)
       at com.google.android.gms.tasks.zzu.**setResult**(:86)                   <-- 1. THIS IS US 
       at com.google.android.gms.tasks.TaskCompletionSource.setResult(:8)
       at io.invertase.firebase.database.UniversalFirebaseDatabaseReferenceModule.lambda$set$0(UniversalFirebaseDatabaseReferenceModule.java:47)
       at io.invertase.firebase.database.-$$Lambda$UniversalFirebaseDatabaseReferenceModule$gDtprJ12RWvrdJIdtskPYeaSErQ.onComplete(:2)

So it appears there is a chain of listeners and tasks together, that attempt to execute. What are they? It's opaque, we don't know.

If we attempt to enqueue tasks into Terminated ExecutorService, I think the rejection is expected, the line numbers are different but I think the theory holds:

https://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java#l1368

        if (isRunning(c) && workQueue.offer(command)) {
            int recheck = ctl.get();
            if (! isRunning(recheck) && remove(command))
                reject(command);
            else if (workerCountOf(recheck) == 0)
                addWorker(null, false);
        }
        else if (!addWorker(command, false))
            reject(command);

I'm guessing we got to !addWorker(command, false) and it failed (probably this line? https://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java#l905 ) because the run state was TERMINATED https://hg.openjdk.java.net/jdk8/jdk8/jdk/file/687fd7c7986d/src/share/classes/java/util/concurrent/ThreadPoolExecutor.java#l350

Too many open questions unfortunately.

Is there any adb logging that would indicate who is terminating the thread pool, and why?

Is there any reproduction of this that can be shared?

mikehardy commented 4 years ago

Cross-pollinating, took an unrelated crash on a separate issue today in CI, and the stack trace looked very very similar. Terminated ExecutorService with completed tasks. I don't think it has anything to do with it, but it highlights that these ExecutorService stack traces are likely just hiding some native bug that we unfortunately can't see https://github.com/invertase/react-native-firebase/pull/3294#issuecomment-674197985

That one was an input validation issue where the crash was internal to the firebase-android-sdk and bubbled out but the workaround was to clean input prior to sending it in to the java native layer.

Might be something similar at play here - not a "database + other modules" problem, just an unsanitized input problem that bubbles out where it shouldn't

mikehardy commented 4 years ago

Cross-linking - this may have bearing: #4168

stale[bot] commented 3 years ago

Hello 👋, to help manage issues we automatically close stale issues. This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs. Thank you for your contributions.

stale[bot] commented 3 years ago

Closing this issue after a prolonged period of inactivity. If this is still present in the latest release, please feel free to create a new issue with up-to-date information.

nadav2051 commented 3 years ago

Also got this with RN0.63.3

java.util.concurrent.RejectedExecutionException Task com.google.android.gms.tasks.zzj@49d182c rejected from java.util.concurrent.ThreadPoolExecutor@248e2f5[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 6] ThreadPoolExecutor.java:2086 java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution ThreadPoolExecutor.java:848 java.util.concurrent.ThreadPoolExecutor.reject ThreadPoolExecutor.java:1394 java.util.concurrent.ThreadPoolExecutor.execute Executors.java:630 java.util.concurrent.Executors$DelegatedExecutorService.execute Unknown:10 com.google.android.gms.tasks.zzi.onComplete Unknown:19 com.google.android.gms.tasks.zzr.zza Unknown:86 com.google.android.gms.tasks.zzu.setResult Unknown:9 com.google.android.gms.tasks.zzo.onSuccess Unknown:4 com.google.android.gms.tasks.zzn.run Unknown:2 com.google.android.gms.tasks.zzt.execute Unknown:11 com.google.android.gms.tasks.zzm.onComplete Unknown:19 com.google.android.gms.tasks.zzr.zza Unknown:86 com.google.android.gms.tasks.zzu.setResult Unknown:8 com.google.android.gms.tasks.TaskCompletionSource.setResult UniversalFirebaseDatabaseReferenceModule.java:47 io.invertase.firebase.database.UniversalFirebaseDatabaseReferenceModule.lambda$set$0 Unknown:2 io.invertase.firebase.database.-$$Lambda$UniversalFirebaseDatabaseReferenceModule$gDtprJ12RWvrdJIdtskPYeaSErQ.onComplete Repo.java:406 com.google.firebase.database.core.Repo$6.run Handler.java:883 android.os.Handler.handleCallback Handler.java:100 android.os.Handler.dispatchMessage Looper.java:237 android.os.Looper.loop ActivityThread.java:8167 android.app.ActivityThread.main Method.java:-2 java.lang.reflect.Method.invoke RuntimeInit.java:496 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run ZygoteInit.java:1100 com.android.internal.os.ZygoteInit.main

react native firebase libs: @react-native-firebase/database: 7.5.12 @react-native-firebase/auth: 9.3.2 @react-native-firebase/app: 8.4.7 @react-native-firebase/messaging: 7.9.2

mikehardy commented 3 years ago

Sorry, I have had no time to move this forward and probably won't for quite a while if ever. If anyone has time to figure out whatever race condition is causing the executor pool to still get an attempted use despite being on the way to shutting down, I'd appreciate it

stale[bot] commented 3 years ago

Hello 👋, to help manage issues we automatically close stale issues. This issue has been automatically marked as stale because it has not had activity for quite some time. Has this issue been fixed, or does it still require the community's attention?

This issue will be closed in 15 days if no further activity occurs. Thank you for your contributions.

stale[bot] commented 3 years ago

Closing this issue after a prolonged period of inactivity. If this is still present in the latest release, please feel free to create a new issue with up-to-date information.

DeepakG-Bsw commented 3 years ago

We are having the same issue in android. This crash comes on various places. Something like Threaspool executor shutdown. Please help. Dependency of RTDB: com.google.firebase:firebase-database:19.7.0

Stack Trace:

Non-fatal Exception: java.util.concurrent.RejectedExecutionException Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@c652331 rejected from com.google.firebase.database.v.i0.c$a@af1a16[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 448] java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution (ThreadPoolExecutor.java:2078) java.util.concurrent.ThreadPoolExecutor.reject (ThreadPoolExecutor.java:843) java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute (ScheduledThreadPoolExecutor.java:334) java.util.concurrent.ScheduledThreadPoolExecutor.schedule (ScheduledThreadPoolExecutor.java:562) java.util.concurrent.ScheduledThreadPoolExecutor.execute (ScheduledThreadPoolExecutor.java:654) com.google.firebase.database.core.Context$1.onSuccess (Context.java:290) com.google.firebase.database.android.AndroidAuthTokenProvider.lambda$getToken$1 (AndroidAuthTokenProvider.java:47) com.google.firebase.database.android.-$$Lambda$AndroidAuthTokenProvider$RrOSb5RJWdeYq_-Ke5cq8RhbGFA.onSuccess (-.java:4) com.google.android.gms.tasks.zzn.run (zzn.java:4) android.os.Handler.handleCallback (Handler.java:790) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (Looper.java:192) android.app.ActivityThread.main (ActivityThread.java:6754) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:549) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:828)

mikehardy commented 3 years ago

Current version is v20 of the database dependency, if you're having problems the first step should be to make sure you are current

DeepakG-Bsw commented 3 years ago

Hi @mikehardy , We used latest version v20 getting same crash.

DeepakG-Bsw commented 3 years ago

Getting this crash as well

Stack trace:

Caused by java.lang.AssertionError hardAssert failed: Expected connection state disconnected, but was GettingToken com.google.firebase.database.connection.ConnectionUtils.hardAssert (ConnectionUtils.java:67) com.google.firebase.database.connection.PersistentConnectionImpl.lambda$tryScheduleReconnect$0 (PersistentConnectionImpl.java:766) com.google.firebase.database.connection.PersistentConnectionImpl.lambda$tryScheduleReconnect$0$PersistentConnectionImpl (PersistentConnectionImpl.java) com.google.firebase.database.connection.-$$Lambda$PersistentConnectionImpl$N2fhKkJD4F2daDVJHVfjsGPcofI.onSuccess (-.java:11) com.google.android.gms.tasks.zzn.run (zzn.java:4) java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:457) java.util.concurrent.FutureTask.run (FutureTask.java:266) java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:301) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162) java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636) java.lang.Thread.run (Thread.java:764)

mikehardy commented 3 years ago

Interesting. We need a minimum viable reproduction here. Can you init a new project using https://github.com/mikehardy/rnfbdemo/blob/master/make-demo.sh and alter App.js just enough to make it crash, then post a new issue with a link to the repo in a new issue?

DeepakG-Bsw commented 3 years ago

Hi we had these crashes on Android.

Dependency of RTDB: com.google.firebase:firebase-database:20.0.0

1). Stack Trace:

Non-fatal Exception: java.util.concurrent.RejectedExecutionException Task java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@c652331 rejected from com.google.firebase.database.v.i0.c$a@af1a16[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 448] java.util.concurrent.ThreadPoolExecutor$AbortPolicy.rejectedExecution (ThreadPoolExecutor.java:2078) java.util.concurrent.ThreadPoolExecutor.reject (ThreadPoolExecutor.java:843) java.util.concurrent.ScheduledThreadPoolExecutor.delayedExecute (ScheduledThreadPoolExecutor.java:334) java.util.concurrent.ScheduledThreadPoolExecutor.schedule (ScheduledThreadPoolExecutor.java:562) java.util.concurrent.ScheduledThreadPoolExecutor.execute (ScheduledThreadPoolExecutor.java:654) com.google.firebase.database.core.Context$1.onSuccess (Context.java:290) com.google.firebase.database.android.AndroidAuthTokenProvider.lambda$getToken$1 (AndroidAuthTokenProvider.java:47) com.google.firebase.database.android.-$$Lambda$AndroidAuthTokenProvider$RrOSb5RJWdeYq_-Ke5cq8RhbGFA.onSuccess (-.java:4) com.google.android.gms.tasks.zzn.run (zzn.java:4) android.os.Handler.handleCallback (Handler.java:790) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (Looper.java:192) android.app.ActivityThread.main (ActivityThread.java:6754) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:549) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:828)

2). Stack trace: Caused by java.lang.AssertionError hardAssert failed: Expected connection state disconnected, but was GettingToken com.google.firebase.database.connection.ConnectionUtils.hardAssert (ConnectionUtils.java:67) com.google.firebase.database.connection.PersistentConnectionImpl.lambda$tryScheduleReconnect$0 (PersistentConnectionImpl.java:766) com.google.firebase.database.connection.PersistentConnectionImpl.lambda$tryScheduleReconnect$0$PersistentConnectionImpl (PersistentConnectionImpl.java) com.google.firebase.database.connection.-$$Lambda$PersistentConnectionImpl$N2fhKkJD4F2daDVJHVfjsGPcofI.onSuccess (-.java:11) com.google.android.gms.tasks.zzn.run (zzn.java:4) java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:457) java.util.concurrent.FutureTask.run (FutureTask.java:266) java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:301) java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1162) java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:636) java.lang.Thread.run (Thread.java:764)

mikehardy commented 3 years ago

@DeepakG-Bsw please follow my instructions with a reproduction on a new issue and we can move forward.