Closed Mura75 closed 4 years ago
Do you have steps to reproduce this issue? What OneSignal SDK version are you using? What device(s) cause the issue?
Unfortunately, I can't reproduce this issue. All crashes come from Crashlytics reports. SDK version 3.12.4 Devices: 1) Samsung: Galaxy A5(2017), Galaxy S8, Galaxy A50, Galaxy S10+, Galaxy S10 2) Xiaomi: Mi A2, Mi A2 lite, Mi A1, Mi A3, Redmi Note 5 Pro 3) Oneplus: ONEPLUS A6010, OnePlus5T, GM191011, GM19008, OnePlus58
version of Android: 10 9, 8, 7
Same issue (
I'm getting the same issue from crashlytics and no reproducible steps.
@mikechoch here are 2 screenshots from Google Play Crashes with the device that triggered the crash.
and
hope it helps
Same here...
same problem occurs here - any timeframe for an update?
From the stack traces we have received it seems to point to a rare race condition of multiplier threads initializing the OneSignalPrefs
but we haven't confirmed this.
Could you provide a full stack trace of all thread from your crash reports to confirm?
@jkasten2 hopefully it will help. My firebase Crashlitics stack trace:
Devices
100% samsung
Operating systems
100% Android 9
Fatal Exception: java.lang.IllegalThreadStateException
at java.lang.Thread.start(Thread.java:724)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startDelayedWrite(OneSignalPrefs.java:117)
at com.onesignal.OneSignalPrefs.startDelayedWrite(OneSignalPrefs.java:183)
at com.onesignal.OneSignal.setAppContext(OneSignal.java:601)
at com.onesignal.RestoreKickoffJobService.startProcessing(RestoreKickoffJobService.java:15)
at com.onesignal.OneSignalJobServiceBase$1.run(OneSignalJobServiceBase.java:22)
at java.lang.Thread.run(Thread.java:764)
Measurement Worker
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:422)
at com.google.android.gms.measurement.internal.zzfx.run(com.google.android.gms:play-services-measurement-impl@@17.2.1:25)
OS_JOBSERVICE_BASE
OS_JOBSERVICE_BASE
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.FutureTask.awaitDone(FutureTask.java:450)
at java.util.concurrent.FutureTask.get(FutureTask.java:192)
at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.java:43)
at com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:321)
at com.crashlytics.android.core.CrashlyticsController$6.onUncaughtException(CrashlyticsController.java:301)
at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:42)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
at java.lang.Thread.dispatchUncaughtException(Thread.java:1955)
OS_HTTPConnection
at libcore.io.Linux.poll(Linux.java)
at libcore.io.BlockGuardOs.poll(BlockGuardOs.java:219)
at libcore.io.IoBridge.isConnected(IoBridge.java:259)
at libcore.io.IoBridge.connectErrno(IoBridge.java:187)
at libcore.io.IoBridge.connect(IoBridge.java:129)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:137)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.Socket.connect(Socket.java:621)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:145)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:1416)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:1368)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:219)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:325)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:470)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:258)
at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:26)
at com.onesignal.OneSignalRestClient.startHTTPConnection(OneSignalRestClient.java:160)
at com.onesignal.OneSignalRestClient.access$100(OneSignalRestClient.java:44)
at com.onesignal.OneSignalRestClient$4.run(OneSignalRestClient.java:108)
at java.lang.Thread.run(Thread.java:764)
OSH_WritePrefs
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:181)
at android.os.HandlerThread.run(HandlerThread.java:65)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
OS_SYNCSRV_BG_SYNC
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:422)
at java.lang.Thread.join(Thread.java:1270)
at com.onesignal.OneSignalRestClient.makeRequest(OneSignalRestClient.java:116)
at com.onesignal.OneSignalRestClient.postSync(OneSignalRestClient.java:97)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.sendOnFocusToPlayer(FocusTimeController.java:234)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.sendOnFocus(FocusTimeController.java:255)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.syncOnFocusTime(FocusTimeController.java:213)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.syncUnsentTimeFromSyncJob(FocusTimeController.java:201)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.access$100(FocusTimeController.java:139)
at com.onesignal.FocusTimeController.doBlockingBackgroundSyncOfUnsentTime(FocusTimeController.java:70)
at com.onesignal.OneSignalSyncServiceUtils$SyncRunnable$1.complete(OneSignalSyncServiceUtils.java:226)
at com.onesignal.LocationGMS.fireComplete(LocationGMS.java:254)
at com.onesignal.LocationGMS.fireFailedComplete(LocationGMS.java:239)
at com.onesignal.LocationGMS.getLocation(LocationGMS.java:166)
at com.onesignal.OneSignalSyncServiceUtils$SyncRunnable.run(OneSignalSyncServiceUtils.java:230)
at java.lang.Thread.run(Thread.java:764)
FinalizerDaemon
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:422)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
at java.lang.Daemons$Daemon.run(Daemons.java:103)
at java.lang.Thread.run(Thread.java:764)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Answers Events Handler1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
at java.lang.Thread.run(Thread.java:764)
firebase-iid-executor
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:868)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1021)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1328)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
at com.google.android.gms.tasks.Tasks$zza.await(:9)
at com.google.android.gms.tasks.Tasks.await(:22)
at com.google.firebase.iid.zzao.zza(com.google.firebase:firebase-iid@@20.0.1:82)
at com.google.firebase.iid.zzl.zza(com.google.firebase:firebase-iid@@20.0.1:78)
at com.google.firebase.iid.zzn.run(:6)
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:764)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
FinalizerWatchdogDaemon
at java.lang.Thread.sleep(Thread.java)
at java.lang.Thread.sleep(Thread.java:373)
at java.lang.Thread.sleep(Thread.java:314)
at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:342)
at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:364)
at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:281)
at java.lang.Daemons$Daemon.run(Daemons.java:103)
at java.lang.Thread.run(Thread.java:764)
firebase-iid-executor
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Crashlytics Exception Handler1
at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
at java.lang.Thread.getStackTrace(Thread.java:1538)
at java.lang.Thread.getAllStackTraces(Thread.java:1588)
at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(CrashlyticsController.java:1340)
at com.crashlytics.android.core.CrashlyticsController.writeFatal(CrashlyticsController.java:1027)
at com.crashlytics.android.core.CrashlyticsController.access$500(CrashlyticsController.java:69)
at com.crashlytics.android.core.CrashlyticsController$7.call(CrashlyticsController.java:328)
at com.crashlytics.android.core.CrashlyticsController$7.call(CrashlyticsController.java:321)
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 io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
at java.lang.Thread.run(Thread.java:764)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Thread-16
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout(:11)
at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(:4)
at com.google.android.gms.ads.identifier.AdvertisingIdClient.zza(:27)
at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo(:47)
at java.lang.reflect.Method.invoke(Method.java)
at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getInfo(AdvertisingInfoReflectionStrategy.java:106)
at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.isLimitAdTrackingEnabled(AdvertisingInfoReflectionStrategy.java:91)
at io.fabric.sdk.android.services.common.AdvertisingInfoReflectionStrategy.getAdvertisingInfo(AdvertisingInfoReflectionStrategy.java:66)
at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.getAdvertisingInfoFromStrategies(AdvertisingInfoProvider.java:118)
at io.fabric.sdk.android.services.common.AdvertisingInfoProvider.access$000(AdvertisingInfoProvider.java:28)
at io.fabric.sdk.android.services.common.AdvertisingInfoProvider$1.onRun(AdvertisingInfoProvider.java:70)
at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
at java.lang.Thread.run(Thread.java:764)
OkHttp ConnectionPool
at java.lang.Object.wait(Object.java)
at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:101)
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:764)
main
at java.lang.Runtime.nativeLoad(Runtime.java)
at java.lang.Runtime.load0(Runtime.java:926)
at java.lang.System.load(System.java:1633)
at com.facebook.soloader.SoLoader$1.load(SoLoader.java:393)
at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:77)
at com.facebook.soloader.UnpackingSoSource.loadLibrary(UnpackingSoSource.java:458)
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:731)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:639)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:587)
at com.facebook.soloader.DirectorySoSource.loadDependencies(DirectorySoSource.java:111)
at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:71)
at com.facebook.soloader.UnpackingSoSource.loadLibrary(UnpackingSoSource.java:458)
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:731)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:639)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:587)
at com.facebook.soloader.DirectorySoSource.loadDependencies(DirectorySoSource.java:111)
at com.facebook.soloader.DirectorySoSource.loadLibraryFrom(DirectorySoSource.java:71)
at com.facebook.soloader.UnpackingSoSource.loadLibrary(UnpackingSoSource.java:458)
at com.facebook.soloader.SoLoader.doLoadLibraryBySoName(SoLoader.java:731)
at com.facebook.soloader.SoLoader.loadLibraryBySoName(SoLoader.java:639)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:577)
at com.facebook.soloader.SoLoader.loadLibrary(SoLoader.java:525)
at com.facebook.react.ReactInstanceManagerBuilder.getDefaultJSExecutorFactory(ReactInstanceManagerBuilder.java:290)
at com.facebook.react.ReactInstanceManagerBuilder.build(ReactInstanceManagerBuilder.java:265)
at com.facebook.react.ReactNativeHost.createReactInstanceManager(ReactNativeHost.java:86)
at com.facebook.react.ReactNativeHost.getReactInstanceManager(ReactNativeHost.java:38)
at com.facebook.react.ReactDelegate.loadApp(ReactDelegate.java:103)
at com.facebook.react.ReactActivityDelegate.loadApp(ReactActivityDelegate.java:88)
at com.facebook.react.ReactActivityDelegate.onCreate(ReactActivityDelegate.java:83)
at com.facebook.react.ReactActivity.onCreate(ReactActivity.java:44)
at com.core.MainActivity.onCreate(MainActivity.java:24)
at android.app.Activity.performCreate(Activity.java:7327)
at android.app.Activity.performCreate(Activity.java:7318)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3094)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3257)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1948)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
FirebaseInstanceId
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1061)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1352)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:278)
at com.google.android.gms.tasks.Tasks$zza.await(:11)
at com.google.android.gms.tasks.Tasks.await(:31)
at com.google.firebase.iid.FirebaseInstanceId.zza(com.google.firebase:firebase-iid@@20.0.1:72)
at com.google.firebase.iid.FirebaseInstanceId.getToken(com.google.firebase:firebase-iid@@20.0.1:68)
at com.google.firebase.iid.FirebaseInstanceId.zzc(com.google.firebase:firebase-iid@@20.0.1:71)
at com.google.firebase.iid.zzav.zzc(com.google.firebase:firebase-iid@@20.0.1:43)
at com.google.firebase.iid.zzav.run(com.google.firebase:firebase-iid@@20.0.1:24)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:459)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.android.gms.common.util.concurrent.zza.run(:6)
at java.lang.Thread.run(Thread.java:764)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
FocusHandlerThread
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:181)
at android.os.HandlerThread.run(HandlerThread.java:65)
MessengerIpcClient
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1132)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.android.gms.common.util.concurrent.zza.run(:6)
at java.lang.Thread.run(Thread.java:764)
queued-work-looper
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:181)
at android.os.HandlerThread.run(HandlerThread.java:65)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Queue
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:548)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
at io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
ReferenceQueueDaemon
at java.lang.Object.wait(Object.java)
at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
at java.lang.Daemons$Daemon.run(Daemons.java:103)
at java.lang.Thread.run(Thread.java:764)
Crashlytics Report Uploader
at java.lang.Thread.sleep(Thread.java)
at java.lang.Thread.sleep(Thread.java:373)
at java.lang.Thread.sleep(Thread.java:314)
at com.crashlytics.android.core.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:200)
at com.crashlytics.android.core.ReportUploader$Worker.onRun(ReportUploader.java:185)
at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
at java.lang.Thread.run(Thread.java:764)
@alimek Thanks, there are 2 threads active that are or did go through the OneSignalPrefs.startDelayedWrite
flow so this further points to this. We will add a synchronized
or other safe guards to this in a future update.
Hey @mikechoch and @jkasten2 thanks for the fix! Do we have a timeline for when this is patched? I've been getting quite a few crashes in production in the past couple of days so just want to have an idea on whether I should stop OneSignal functionality temporarily or wait for fix if it's quick. Thanks again!
Hi all,
It seems this issue is not yet fixed. I just had a production crash on this after updating to the latest version. Screenshot of stack trace attached. Any chance you guys can have another look?
I'm using the latest version of react-native-onesignal which is in turn using version 3.12.6 of this library.
Any help you guys can provide would be immensely helpful! Thanks!
@mikechoch the issue is still happening. 2 crashes on an updated version of our app. Can we open this again?
Thanks!
Hey @rgomezp @jkasten2 @mikechoch
It's been a couple of weeks since I first reported this not being fixed, and we haven't really had any info here since. Any chance we can get an update on the situation? Sorry for asking, but I need to decide whether I make a release of my application with the OneSignal functionality removed, and knowing if this is going to take a long time to fix would really help!
Thanks in advance!
Hi everyone, we're working hard to resolve issues as soon as possible. Thank you for your patience and sorry for the inconvenience!
same we also had many crashes after upgrade to the latest version.
java.lang.Error: FATAL EXCEPTION [OS_JOBSERVICE_BASE] Unity version : 2019.2.20f1 Device model : samsung SM-T590 Device fingerprint: samsung/gta2xlwifixx/gta2xlwifi:9/PPR1.180610.011/T590XXU3BTA1:user/release-keys Caused by at java.lang.Thread.start (Thread.java:724) at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startDelayedWrite (OneSignalPrefs.java:117) at com.onesignal.OneSignalPrefs.startDelayedWrite (OneSignalPrefs.java:183) at com.onesignal.OneSignal.setAppContext (OneSignal.java:602) at com.onesignal.RestoreKickoffJobService.startProcessing (RestoreKickoffJobService.java:15) at com.onesignal.OneSignalJobServiceBase$1.run (OneSignalJobServiceBase.java:22) at java.lang.Thread.run (Thread.java:764)
Any timeline for this fix? Our vitals are going for a toss , just because of this issue. It's costing us a lot.A timeline for this fix would be highly appreciated.
same we also had many crashes after upgrade to the 3.12.6 version.
Same here, our DAU on Android falling down, because of this error.
We first reported this as not fixed 4 weeks ago, and it is causing over 90% of the crashes on our app. Any chance of an ETA on the fix?
45% crash free users and this problem is still medium priority.
UPD: Can version downgrade solve the problem? If yes, please, provide version to downgrade. @rgomezp
I've created problem on stackoverflow. Hope someone has workaround, feel free to contribute.
I came to know about this issue via this StackOverflow post.
I have been looking into the stack trace and library code and going to share the insights.
Issue: As per the logs, The issue is happening because start() is being called twice which is causing the java.lang.IllegalThreadStateException
Solution: After looking at the code and comment history, this should have been fixed with the synchronized commit by @mikechoch in 3.12.6 release.
The exception makes perfect sense without synchronized fix as startDelayedWrite
can be invoked with save data and initContext
, etc which will result in multiple invocations of start()
So either the old version is being used (could be Android studio cache ) or seems like the thread is in the process of termination and another one is being instantiated and threadStatus
is mapped to older state with a non-zero value.
A possible quick fix would be creating new thread for each request or if (mHandler == null && !isAlive())
but it can further cause issue due to null handler.
or the SDK client (@Erumaru ) can override global-exception-handling for time being but it can affect the whole app behavior and strongly not recommended in production for long time, considering this case.
Throwable
or Exception
in your application code. If so you could be suppressing a java.lang.InternalError
or java.lang.OutOfMemoryError
error when OneSignal starts a thread, hiding this as the root cause.@Pavneet-Sing Thanks for investigating as well.
I took a deeper look at the Java Thread.start()
implementation and wasn't able to see any cases where IllegalThreadStateException
could be thrown on the first call as you have noted.
Source from Android-28 for reference:
/**
* Causes this thread to begin execution; the Java Virtual Machine
* calls the <code>run</code> method of this thread.
* <p>
* The result is that two threads are running concurrently: the
* current thread (which returns from the call to the
* <code>start</code> method) and the other thread (which executes its
* <code>run</code> method).
* <p>
* It is never legal to start a thread more than once.
* In particular, a thread may not be restarted once it has completed
* execution.
*
* @exception IllegalThreadStateException if the thread was already
* started.
* @see #run()
* @see #stop()
*/
public synchronized void start() {
/**
* This method is not invoked for the main method thread or "system"
* group threads created/set up by the VM. Any new functionality added
* to this method in the future may have to also be added to the VM.
*
* A zero status value corresponds to state "NEW".
*/
// Android-changed: throw if 'started' is true
if (threadStatus != 0 || started)
throw new IllegalThreadStateException();
/* Notify the group that this thread is about to be started
* so that it can be added to the group's list of threads
* and the group's unstarted count can be decremented. */
group.add(this);
started = false;
try {
nativeCreate(this, stackSize, daemon);
started = true;
} finally {
try {
if (!started) {
group.threadStartFailed(this);
}
} catch (Throwable ignore) {
/* do nothing. If start0 threw a Throwable then
it will be passed up the call stack */
}
}
}
However what could be happening is if the call to nativeCreate()
in Thread.start()
is throwing, but before it does if threadStatus
is set to a non-zero value. When this happens OneSignal SDK maybe catching this exception somewhere lower in the stack and proceeding silently. This would then result in mHandler
still being null
on WritePrefHandlerThread
. Then startDelayedWrite
maybe calling Thread.start()
2nd time resulting in the stack trace that is being reported here on Thread.java:724.
if (threadStatus != 0 || started)
throw new IllegalThreadStateException();
The call to nativeCreate()
can throw an exception in some specific cases, some of which have been reported to OneSignal in the past such as:
java.lang.InternalError
- Thread starting during runtime shutdownjava.lang.OutOfMemoryError
- pthread_create (XXXXKB stack) failed: Try againThe last question to confirm is if threadStatus
is really modified, if you view the source of Thread.java
in Android Studio when using compileSDK 28
you won't see any writes to threadStatus
. This is a commit that removes threadStatus
for Android 10 (API 29) but adds an note to confirm threadStatus
was being modified by native code before this commit.
https://cs.android.com/android/_/android/platform/libcore/+/8c9f027e9d487ff67070318db14fa5fc1bcfe908:ojluni/src/main/java/java/lang/Thread.java;l=233-248;dlc=4a3e77d13263a41633a5522561e7bec4a2301716;drc=4e17ca1a1f05e1d9064ab964df5bf3ea0e167875;bpv=1;bpt=0
// BEGIN Android-changed: Replace unused threadStatus field with started field.
// Upstream this is modified by the native code and read in the start() and getState() methods
// but in Android it is unused. The threadStatus is essentially an internal representation of
// the Thread.State enum. Android uses two sources for that information, the native thread
// state and the started field. The reason two sources are needed is because the native thread
// is created when the thread is started and destroyed when the thread is stopped. That means
// that the native thread state does not exist before the Thread has started (in State.NEW) or
// after it has been stopped (in State.TERMINATED). In that case (i.e. when the nativePeer = 0)
// the started field differentiates between the two states, i.e. if started = false then the
// thread is in State.NEW and if started = true then the thread is in State.TERMINATED.
// private volatile int threadStatus = 0;
/**
* True if the the Thread has been started, even it has since been stopped.
*/
boolean started = false;
// END Android-changed: Replace unused threadStatus field with started field.
Also noted in this Android 10 commit the throw for IllegalThreadStateException
now looks like this and is on line 867.
if (started)
throw new IllegalThreadStateException();
So to conclude, the next steps for this will be to investigate all entry points into startDelayedWrite
in the OneSignal SDK that could be catching more than it should. Such as anything that might be catching Throwable
. Since all writes made to SharedPreferences
will first call startDelayedWrite
the case noted above is likely, however this means searching through the code base will be more extensive. However replacing all overly generic catches in the SDK would most likely resolve this exact crash. This will then uncover the root cause where nativeCreate()
is most likely throwing
java.lang.InternalError
or java.lang.OutOfMemoryError
.
@jkasten2 Great insights.
The first run should be fine though the mystery is mHandler
should be null
to trigger the start()
so it seems like the exception is being thrown during the first run(considering the synchronized change) as the mHandler
won't be null next time.
2nd run of Thread.start
: I went through this Thread starting during runtime shutdown crash issue and it make sense though I did spend some time during my R&D last time and couldn't find any implementation of exception suppression in SDK for OneSignalPrefs
initialization though i didn't use any IDE so there could be a slight possibility that I missed something with global search in SDK although could be possible that some clients(user) are suppressing the exceptions etc.
Android R is still unstable and even has some issues with UI (Bubble) etc so there's a slight possibility that it's due to the platform itself.
As you've said, the need to reproduce the issue is the key though I would prefer the reproduction steps on stable release for further R&D consideration.
The number of IllegalThreadStateException
crashes you are seeing with OneSignal could be a function of the number of other crashes you are getting in your app. I recommend addressing all other high count crashes in your app.
See the "Related Crash" section below on why this is most likely the case.
Please check if you have the following exception as well in your crash reports, regardless if they included com.onesignal
in the stack trace or not.
java.lang.InternalError: Thread starting during runtime shutdown`
at java.lang.Thread.nativeCreate(Native Method)
at java.lang.Thread.start(Thread.java:1063)
If present, this will confirm the crash reporter (such as Crashlytics) in your app taking too long to report the crash and other threads are starting while it is reporting the crash. If the above InternalError
error has com.onesignal
in the stack trace then this would case the IllegalThreadStateException
reported here too. However the InternalError
crash may not be reported if OneSignal or your app is catching that exception. So even if you don't see this it can't be ruled out.
Another red herring to this issue is that Crashlytics in some case maybe taking to long to log the exception. If Crashlytics Thread.UncaughtExceptionHandler
takes more than a few seconds any calls to Thread.start
will start throwing with java.lang.InternalError: Thread starting during runtime shutdown
.
For reference, here is one of the Crashlytics threads running when OneSignal got a java.lang.IllegalThreadStateException
thrown when it tried to call Thread.start
Crashlytics Exception Handler1
at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
at java.lang.Thread.getStackTrace(Thread.java:1538)
at java.lang.Thread.getAllStackTraces(Thread.java:1588)
at com.crashlytics.android.core.CrashlyticsController.writeSessionEvent(CrashlyticsController.java:1340)
at com.crashlytics.android.core.CrashlyticsController.writeFatal(CrashlyticsController.java:1027)
at com.crashlytics.android.core.CrashlyticsController.access$500(CrashlyticsController.java:69)
at com.crashlytics.android.core.CrashlyticsController$7.call(CrashlyticsController.java:328)
at com.crashlytics.android.core.CrashlyticsController$7.call(CrashlyticsController.java:321)
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 io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
at io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
at java.lang.Thread.run(Thread.java:764)
See https://github.com/OneSignal/OneSignal-Android-SDK/issues/917#issuecomment-577347301 above for the stack trace of all threads. This comment added before the synchronized
was put into place in the OneSignal SDK but if java.lang.IllegalThreadStateException
thrown when it tried to call Thread.start
was thrown then caught (by the SDK or app codebase) then the IllegalThreadStateException
will happen next.
For reference here is the Crashlytics codebase where the report is uploaded where it could be waiting for a while: https://github.com/firebase/firebase-android-sdk/blob/3f5146f6908b46e9db917e2af5e555f25b045973/firebase-crashlytics/src/main/java/com/google/firebase/crashlytics/internal/report/ReportUploader.java#L155-L165
The IllegalThreadStateException
will no longer be thrown in the 3.13.0 Release. You will now see the root exception being thrown instead so these crashes can be diagnosed further.
The following PRs were included in 3.13.0 for reference:
@jkasten2 ok thanks for the work, hopefully we will be able to see what's causing the crashes in our respective apps now. @mikechoch can we get an updated version of the react native port using the latest Android SDK? Thanks!
Are you planning to updated UnitySDK soon? Experiencing lots of crashes due to this error with the latest 2.11.4 release as well
Same thing here, I also see a lot of crashes in our Unity game. Thank you for your work!
Same here
Same here
Caused by java.lang.IllegalThreadStateException
at java.lang.Thread.start(Thread.java:724)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startThread(OneSignalPrefs.java:174)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startDelayedWrite(OneSignalPrefs.java:137)
at com.onesignal.OneSignalPrefs.startDelayedWrite(OneSignalPrefs.java:238)
at com.onesignal.OneSignal.setAppContext(OneSignal.java:609)
at com.onesignal.OneSignalSyncServiceUtils.doBackgroundSync(OneSignalSyncServiceUtils.java:178)
at com.onesignal.SyncJobService.onStartJob(SyncJobService.java:40)
at android.app.job.JobService$1.onStartJob(JobService.java:62)
at android.app.job.JobServiceEngine$JobHandler.handleMessage(JobServiceEngine.java:108)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7099)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Devices 100% samsung
Operating systems 100% Android 9
Device states 100% background
@iballan Thanks for reporting. From the stacktrace I see you are using the 3.13.0+SDK but it seems it did not fix the IllegalThreadStateException
for you. We will need so more details to find what the next action is.
java.lang.IllegalThreadStateException:
?
@jkasten2 Yes I used latest version OneSignal:3.13.1. This is probably the same user's crash report but from Google Play, the one above was from Firebase Crashlytics:
Samsung Galaxy A30 (a30), 3840MB RAM, Android 9
java.lang.RuntimeException:
at android.app.job.JobServiceEngine$JobHandler.handleMessage (JobServiceEngine.java:112)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:214)
at android.app.ActivityThread.main (ActivityThread.java:7099)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)
Caused by: java.lang.IllegalThreadStateException:
at java.lang.Thread.start (Thread.java:724)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startThread (OneSignalPrefs.java:174)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startDelayedWrite (OneSignalPrefs.java:137)
at com.onesignal.OneSignalPrefs.startDelayedWrite (OneSignalPrefs.java:238)
at com.onesignal.OneSignal.setAppContext (OneSignal.java:609)
at com.onesignal.OneSignalSyncServiceUtils.doBackgroundSync (OneSignalSyncServiceUtils.java:178)
at com.onesignal.SyncJobService.onStartJob (SyncJobService.java:40)
at android.app.job.JobService$1.onStartJob (JobService.java:62)
at android.app.job.JobServiceEngine$JobHandler.handleMessage (JobServiceEngine.java:108)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loop (Looper.java:214)
at android.app.ActivityThread.main (ActivityThread.java:7099)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:965)
No, unfortunately I am not able to reproduce it, While i was testing on my device and simulators it was working fine. I recently updated my app and got this report.
@iballan Thanks for checking, it looks like the same stack trace.
Can you attach the stacktraces of all threads from Crashlytics as a log file? It should look like this https://github.com/OneSignal/OneSignal-Android-SDK/issues/917#issuecomment-577347301
Hello @jkasten2
Fatal Exception: java.lang.IllegalThreadStateException
Thread already started
java.lang.Thread.checkNotStarted (Thread.java:849)
java.lang.Thread.start (Thread.java:1059)
com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startThread (OneSignalPrefs.java:174)
com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startDelayedWrite (OneSignalPrefs.java:137)
com.onesignal.OneSignalPrefs.startDelayedWrite (OneSignalPrefs.java:238)
com.onesignal.OneSignal.setAppContext (OneSignal.java:609)
com.onesignal.RestoreKickoffJobService.startProcessing (RestoreKickoffJobService.java:15)
com.onesignal.OneSignalJobServiceBase$1.run (OneSignalJobServiceBase.java:22)
java.lang.Thread.run (Thread.java:818)
GoogleApiHandler
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:143)
android.os.Looper.loop (Looper.java:130)
android.os.HandlerThread.run (HandlerThread.java:61)
pool-15-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1060)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:776)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
pool-3-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
AsyncTask #4
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
Measurement Worker
android.database.sqlite.SQLiteConnection.nativeClose (SQLiteConnection.java)
android.database.sqlite.SQLiteConnection.dispose (SQLiteConnection.java:390)
android.database.sqlite.SQLiteConnection.close (SQLiteConnection.java:307)
android.database.sqlite.SQLiteConnectionPool.closeConnectionAndLogExceptionsLocked (SQLiteConnectionPool.java:593)
android.database.sqlite.SQLiteConnectionPool.closeAvailableConnectionsAndLogExceptionsLocked (SQLiteConnectionPool.java:566)
android.database.sqlite.SQLiteConnectionPool.dispose (SQLiteConnectionPool.java:256)
android.database.sqlite.SQLiteConnectionPool.close (SQLiteConnectionPool.java:235)
android.database.sqlite.SQLiteDatabase.dispose (SQLiteDatabase.java:300)
android.database.sqlite.SQLiteDatabase.onAllReferencesReleased (SQLiteDatabase.java:277)
android.database.sqlite.SQLiteClosable.releaseReference (SQLiteClosable.java:74)
android.database.sqlite.SQLiteClosable.close (SQLiteClosable.java:106)
com.google.android.gms.measurement.internal.zzff.zza (zzff.java:58)
com.google.android.gms.measurement.internal.zzff.zza (zzff.java:100)
com.google.android.gms.measurement.internal.zziz.zza (zziz.java:62)
com.google.android.gms.measurement.internal.zzhr.zza (zzhr.java:326)
com.google.android.gms.measurement.internal.zzhw.run (zzhw.java:2)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:422)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
com.google.android.gms.measurement.internal.zzgn.run (zzgn.java:21)
GAC_Executor[1]
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
java.lang.Thread.run (Thread.java:818)
pool-2-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
AsyncTask #1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
AsyncTask #3
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
GCDaemon
java.lang.Object.wait (Object.java)
java.lang.Daemons$GCDaemon.run (Daemons.java:359)
java.lang.Thread.run (Thread.java:818)
Firebase-Messaging-Trigger-Topics-Io
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
java.lang.Thread.run (Thread.java:818)
Crashlytics Exception Handler1
dalvik.system.VMStack.getThreadStackTrace (VMStack.java)
java.lang.Thread.getStackTrace (Thread.java:580)
java.lang.Thread.getAllStackTraces (Thread.java:522)
com.google.firebase.crashlytics.internal.common.CrashlyticsController.writeSessionEvent (CrashlyticsController.java:1426)
com.google.firebase.crashlytics.internal.common.CrashlyticsController.writeFatal (CrashlyticsController.java:1174)
com.google.firebase.crashlytics.internal.common.CrashlyticsController.access$600 (CrashlyticsController.java:91)
com.google.firebase.crashlytics.internal.common.CrashlyticsController$6.call (CrashlyticsController.java:401)
com.google.firebase.crashlytics.internal.common.CrashlyticsController$6.call (CrashlyticsController.java:393)
com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker$3.then (CrashlyticsBackgroundWorker.java:106)
com.google.android.gms.tasks.zzg.run (zzg.java:2)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun (ExecutorUtils.java:60)
com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run (BackgroundPriorityRunnable.java:27)
java.lang.Thread.run (Thread.java:818)
firebase-installations-executor-١
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
OkHttp ConnectionPool
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
firebase-installations-executor-٢
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
OSH_WritePrefs
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:143)
android.os.Looper.loop (Looper.java:130)
android.os.HandlerThread.run (HandlerThread.java:61)
HeapTrimmerDaemon
dalvik.system.VMRuntime.trimHeap (VMRuntime.java)
java.lang.Daemons$HeapTrimmerDaemon.run (Daemons.java:328)
java.lang.Thread.run (Thread.java:818)
pool-13-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
OSH_LocationHandlerThread
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:143)
android.os.Looper.loop (Looper.java:130)
android.os.HandlerThread.run (HandlerThread.java:61)
ReferenceQueueDaemon
java.lang.Object.wait (Object.java)
java.lang.Daemons$ReferenceQueueDaemon.run (Daemons.java:149)
java.lang.Thread.run (Thread.java:818)
AsyncTask #2
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
OS_SYNCSRV_BG_SYNC
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.ArrayBlockingQueue.take (ArrayBlockingQueue.java:373)
com.onesignal.OneSignalSyncServiceUtils$SyncRunnable.run (OneSignalSyncServiceUtils.java:236)
java.lang.Thread.run (Thread.java:818)
firebase-iid-executor
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
java.lang.Thread.run (Thread.java:818)
pool-6-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
com.google.firebase.crashlytics.startup1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun (ExecutorUtils.java:60)
com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run (BackgroundPriorityRunnable.java:27)
java.lang.Thread.run (Thread.java:818)
AsyncTask #5
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
FinalizerDaemon
java.lang.Object.wait (Object.java)
java.lang.Object.wait (Object.java:422)
java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:101)
java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:72)
java.lang.Daemons$FinalizerDaemon.run (Daemons.java:189)
java.lang.Thread.run (Thread.java:818)
OS_GMS_LOCATION_FALLBACK
java.lang.Thread.sleep (Thread.java)
java.lang.Thread.sleep (Thread.java:1031)
java.lang.Thread.sleep (Thread.java:985)
com.onesignal.LocationGMS$2.run (LocationGMS.java:283)
java.lang.Thread.run (Thread.java:818)
GAC_Executor[0]
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:2055)
java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:435)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.android.gms.common.util.concurrent.zza.run (zza.java:6)
java.lang.Thread.run (Thread.java:818)
main
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:143)
android.os.Looper.loop (Looper.java:130)
android.app.ActivityThread.main (ActivityThread.java:6917)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1404)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1199)
TokenRefresher
android.os.MessageQueue.nativePollOnce (MessageQueue.java)
android.os.MessageQueue.next (MessageQueue.java:143)
android.os.Looper.loop (Looper.java:130)
android.os.HandlerThread.run (HandlerThread.java:61)
pool-16-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:1048)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take (ScheduledThreadPoolExecutor.java:776)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
OS_JOBSERVICE_BASE
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt (AbstractQueuedSynchronizer.java:813)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly (AbstractQueuedSynchronizer.java:973)
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly (AbstractQueuedSynchronizer.java:1281)
java.util.concurrent.CountDownLatch.await (CountDownLatch.java:202)
com.google.firebase.crashlytics.internal.common.Utils.awaitEvenIfOnMainThread (Utils.java:185)
com.google.firebase.crashlytics.internal.common.CrashlyticsController.handleUncaughtException (CrashlyticsController.java:447)
com.google.firebase.crashlytics.internal.common.CrashlyticsController$5.onUncaughtException (CrashlyticsController.java:365)
com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler.uncaughtException (CrashlyticsUncaughtExceptionHandler.java:54)
java.lang.ThreadGroup.uncaughtException (ThreadGroup.java:693)
java.lang.ThreadGroup.uncaughtException (ThreadGroup.java:690)
FinalizerWatchdogDaemon
java.lang.Thread.sleep (Thread.java)
java.lang.Thread.sleep (Thread.java:1031)
java.lang.Thread.sleep (Thread.java:985)
java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor (Daemons.java:273)
java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization (Daemons.java:284)
java.lang.Daemons$FinalizerWatchdogDaemon.run (Daemons.java:232)
java.lang.Thread.run (Thread.java:818)
awaitEvenIfOnMainThread task continuation executor1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.park (LockSupport.java:157)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:2016)
java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:410)
java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1035)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1097)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun (ExecutorUtils.java:60)
com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run (BackgroundPriorityRunnable.java:27)
java.lang.Thread.run (Thread.java:818)
pool-17-thread-1
java.lang.Object.wait (Object.java)
java.lang.Thread.parkFor (Thread.java:1220)
sun.misc.Unsafe.park (Unsafe.java:299)
java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:197)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos (AbstractQueuedSynchronizer.java:1014)
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos (AbstractQueuedSynchronizer.java:1304)
java.util.concurrent.CountDownLatch.await (CountDownLatch.java:248)
com.google.firebase.crashlytics.internal.common.CrashlyticsController$BlockingCrashEventListener.awaitEvent (CrashlyticsController.java:1743)
com.google.firebase.crashlytics.internal.common.CrashlyticsController$23.call (CrashlyticsController.java:1793)
com.google.firebase.crashlytics.internal.common.CrashlyticsController$23.call (CrashlyticsController.java:1769)
com.google.android.gms.tasks.zzz.run (zzz.java:2)
java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:422)
java.util.concurrent.FutureTask.run (FutureTask.java:237)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201 (ScheduledThreadPoolExecutor.java:152)
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:265)
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)
java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:587)
java.lang.Thread.run (Thread.java:818)
Wish this helps
I noticed that the issue happened when i moved the OneSignal.startInit from Application class to Splash Activity
@iballan It possible moving that could be related, but hard to say. Anyway it is recommend initialize OneSignal from your Application.onCreate
class to rule out any possibles where it may not be called.
We are now catching even Throwable
to find the root cause of the error in PR #993. It will be included in the next release.
We just released the PR #993 today in our 3.13.2 release. As noted above, since we are catching Throwable
now this time all possible exceptions will be accounted for so the root cause should found on future exceptions.
same we also had many crashes after upgrade to the 3.13.2 version.
@M2dL1fe Can you post the full ANR stacktrace like https://github.com/OneSignal/OneSignal-Android-SDK/issues/917#issuecomment-615873549?
Also let us know Android versions and device manufacturers getting the crash with the 3.13.2 SDK
@jkasten2
@M2dL1fe Thanks, this was helpful in finding the root cause!
We have fixed the issue in PR #1019 and it will be included in the next release.
Thanks for everyone's help on reporting these stacktrace and @Pavneet-Sing deep dive into the issue as well.
@jkasten2 Welcome and Thanks.
I have a lot of this type of error in crashlytics. Can someone help me? How can i fix this?
@jkasten2
OneSignal v3.13.2
Devices: Galaxy J8 Galaxy J8 Galaxy J7 Pro Galaxy S9 Galaxy A20s Galaxy A20 Galaxy J4 Galaxy A8(2018) Galaxy Note9 LGE(K50S, LM-X520, LG K40) TCL (ALCATEL ONETOUCH POP 3)
Android versions: Android 9 Android 10 Android 5
Fatal Exception: java.lang.IllegalThreadStateException: Thread has state: RUNNABLE
at java.lang.Thread.start(Thread.java:724)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startThread(OneSignalPrefs.java:201)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.startDelayedWrite(OneSignalPrefs.java:142)
at com.onesignal.OneSignalPrefs$WritePrefHandlerThread.access$200(OneSignalPrefs.java:125)
at com.onesignal.OneSignalPrefs.startDelayedWrite(OneSignalPrefs.java:282)
at com.onesignal.OneSignal.setAppContext(OneSignal.java:607)
at com.onesignal.RestoreKickoffJobService.startProcessing(RestoreKickoffJobService.java:15)
at com.onesignal.OneSignalJobServiceBase$1.run(OneSignalJobServiceBase.java:22)
at java.lang.Thread.run(Thread.java:764)
Measurement Worker
at android.os.BinderProxy.transactNative(BinderProxy.java)
at android.os.BinderProxy.transact(BinderProxy.java:1145)
at com.google.android.gms.internal.measurement.zza.zzb(zza.java:21)
at com.google.android.gms.measurement.internal.zzeo.zza(zzeo.java:11)
at com.google.android.gms.measurement.internal.zzir.zza(zzir.java:41)
at com.google.android.gms.measurement.internal.zziw.run(zziw.java:8)
at com.google.android.gms.measurement.internal.zzir.zzan(zzir.java:285)
at com.google.android.gms.measurement.internal.zzir.zza(zzir.java:245)
at com.google.android.gms.measurement.internal.zzjn.run(zzjn.java:6)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:459)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.google.android.gms.measurement.internal.zzfz.run(zzfz.java:21)
FinalizerWatchdogDaemon
at java.lang.Thread.sleep(Thread.java)
at java.lang.Thread.sleep(Thread.java:373)
at java.lang.Thread.sleep(Thread.java:314)
at java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:342)
at java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:364)
at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:281)
at java.lang.Daemons$Daemon.run(Daemons.java:103)
at java.lang.Thread.run(Thread.java:764)
OS_HTTPConnection
at libcore.io.Linux.poll(Linux.java)
at libcore.io.BlockGuardOs.poll(BlockGuardOs.java:219)
at libcore.io.IoBridge.isConnected(IoBridge.java:259)
at libcore.io.IoBridge.connectErrno(IoBridge.java:187)
at libcore.io.IoBridge.connect(IoBridge.java:129)
at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:137)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
at java.net.Socket.connect(Socket.java:621)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:145)
at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:1416)
at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:1368)
at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:219)
at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142)
at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:392)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:325)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:488)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:262)
at
com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:218)
at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:26)
at com.google.firebase.perf.network.zzf.getOutputStream(zzf.java:67)
at com.google.firebase.perf.network.zzc.getOutputStream(zzc.java:13)
at com.onesignal.OneSignalRestClient.startHTTPConnection(OneSignalRestClient.java:163)
at com.onesignal.OneSignalRestClient.access$100(OneSignalRestClient.java:44)
at com.onesignal.OneSignalRestClient$4.run(OneSignalRestClient.java:110)
at java.lang.Thread.run(Thread.java:764)
Firebase-Messaging-Trigger-Topics-Io
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.android.gms.common.util.concurrent.zza.run(zza.java:6)
at java.lang.Thread.run(Thread.java:764)
pool-12-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
queued-work-looper
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:181)
at android.os.HandlerThread.run(HandlerThread.java:65)
ScionFrontendApi
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
firebase-installations-executor-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
pool-19-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
pool-25-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
main
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:686)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:829)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769)
at android.view.LayoutInflater.inflate(LayoutInflater.java:531)
at android.view.LayoutInflater.inflate(LayoutInflater.java:461)
at com.google.android.material.internal.NavigationMenuPresenter.getMenuView(NavigationMenuPresenter.java:108)
at com.google.android.material.navigation.NavigationView.<init>(NavigationView.java:227)
at com.google.android.material.navigation.NavigationView.<init>(NavigationView.java:119)
at java.lang.reflect.Constructor.newInstance0(Constructor.java)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:686)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:829)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:902)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:863)
at android.view.LayoutInflater.inflate(LayoutInflater.java:554)
at android.view.LayoutInflater.inflate(LayoutInflater.java:461)
at com.rightdisha.portuguese.ui._core.fragment.BaseFragment.onCreateView(BaseFragment.java:101)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:320)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1187)
at androidx.fragment.app.FragmentManager.addAddedFragments(FragmentManager.java:2224)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1997)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1953)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2629)
at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577)
at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:2722)
at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:346)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1188)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1356)
at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState(FragmentManager.java:1434)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1497)
at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:447)
at androidx.fragment.app.FragmentManager.executeOps(FragmentManager.java:2169)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1992)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849)
at androidx.fragment.app.FragmentManager$4.run(FragmentManager.java:413)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7078)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
OS_SYNCSRV_BG_SYNC
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:422)
at java.lang.Thread.join(Thread.java:1270)
at com.onesignal.OneSignalRestClient.makeRequest(OneSignalRestClient.java:118)
at com.onesignal.OneSignalRestClient.postSync(OneSignalRestClient.java:99)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.sendOnFocusToPlayer(FocusTimeController.java:231)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.sendOnFocus(FocusTimeController.java:252)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.syncOnFocusTime(FocusTimeController.java:210)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.syncUnsentTimeFromSyncJob(FocusTimeController.java:198)
at com.onesignal.FocusTimeController$FocusTimeProcessorBase.access$100(FocusTimeController.java:136)
at com.onesignal.FocusTimeController.doBlockingBackgroundSyncOfUnsentTime(FocusTimeController.java:67)
at com.onesignal.OneSignalSyncServiceUtils$SyncRunnable.run(OneSignalSyncServiceUtils.java:247)
at java.lang.Thread.run(Thread.java:764)
pool-24-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
pool-13-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
OSH_WritePrefs
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:181)
at android.os.HandlerThread.run(HandlerThread.java:65)
GoogleApiHandler
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:181)
at android.os.HandlerThread.run(HandlerThread.java:65)
OS_JOBSERVICE_BASE
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:868)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1021)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1328)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
at com.google.firebase.crashlytics.internal.common.Utils.awaitEvenIfOnMainThread(Utils.java:185)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:444)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController$5.onUncaughtException(CrashlyticsController.java:361)
at com.google.firebase.crashlytics.internal.common.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:54)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
at java.lang.Thread.dispatchUncaughtException(Thread.java:1955)
FinalizerDaemon
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:422)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
at java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
at java.lang.Daemons$Daemon.run(Daemons.java:103)
at java.lang.Thread.run(Thread.java:764)
OkHttp ConnectionPool
at java.lang.Object.wait(Object.java)
at com.android.okhttp.ConnectionPool$1.run(ConnectionPool.java:101)
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:764)
ReferenceQueueDaemon
at java.lang.Object.wait(Object.java)
at java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
at java.lang.Daemons$Daemon.run(Daemons.java:103)
at java.lang.Thread.run(Thread.java:764)
pool-24-thread-2
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
com.google.firebase.crashlytics.startup1
at com.android.org.conscrypt.NativeCrypto.get_X509_ex_kusage(NativeCrypto.java)
at com.android.org.conscrypt.OpenSSLX509Certificate.getKeyUsage(OpenSSLX509Certificate.java:342)
at sun.security.provider.certpath.AlgorithmChecker.check(AlgorithmChecker.java:213)
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125)
at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:222)
at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:140)
at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
at com.android.org.conscrypt.DelegatingCertPathValidator.engineValidate(DelegatingCertPathValidator.java:44)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:301)
at com.android.org.conscrypt.TrustManagerImpl.verifyChain(TrustManagerImpl.java:715)
at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:543)
at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:564)
at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:609)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:499)
at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:422)
at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:343)
at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:88)
at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:208)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.verifyCertificateChain(ConscryptFileDescriptorSocket.java:426)
at com.android.org.conscrypt.NativeCrypto.SSL_do_handshake(NativeCrypto.java)
at com.android.org.conscrypt.NativeSsl.doHandshake(NativeSsl.java:383)
at com.android.org.conscrypt.ConscryptFileDescriptorSocket.startHandshake(ConscryptFileDescriptorSocket.java:231)
at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.java:367)
at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.java:325)
at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:197)
at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:249)
at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)
at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:76)
at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.java:245)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:32)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:96)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:83)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:76)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:100)
at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.java:197)
at okhttp3.internal.connection.RealCall.execute(RealCall.java:148)
at com.google.firebase.crashlytics.internal.network.HttpRequest.execute(HttpRequest.java:129)
at com.google.firebase.crashlytics.internal.settings.network.DefaultSettingsSpiCall.invoke(DefaultSettingsSpiCall.java:86)
at com.google.firebase.crashlytics.internal.settings.SettingsController$1.then(SettingsController.java:200)
at com.google.firebase.crashlytics.internal.settings.SettingsController$1.then(SettingsController.java:193)
at com.google.android.gms.tasks.zzp.run(zzp.java:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:60)
at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27)
at java.lang.Thread.run(Thread.java:764)
pool-8-thread-2
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
pool-8-thread-2
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Firebase-Messaging-Topics-Io
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1120)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:849)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.android.gms.common.util.concurrent.zza.run(zza.java:6)
at java.lang.Thread.run(Thread.java:764)
firebase-iid-executor
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2101)
at java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:467)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.android.gms.common.util.concurrent.zza.run(zza.java:6)
at java.lang.Thread.run(Thread.java:764)
pool-10-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
pool-16-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
kotlinx.coroutines.DefaultExecutor
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at kotlinx.coroutines.DefaultExecutor.run(DefaultExecutor.java:81)
at java.lang.Thread.run(Thread.java:764
Crashlytics Report Uploader
at java.lang.Thread.sleep(Thread.java)
at java.lang.Thread.sleep(Thread.java:373)
at java.lang.Thread.sleep(Thread.java:314)
at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.attemptUploadWithRetry(ReportUploader.java:162)
at com.google.firebase.crashlytics.internal.report.ReportUploader$Worker.onRun(ReportUploader.java:149)
at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27)
at java.lang.Thread.run(Thread.java:764)
Okio Watchdog
at java.lang.Object.wait(Object.java)
at okio.AsyncTimeout$Companion.awaitTimeout$okio(AsyncTimeout.java:316)
at okio.AsyncTimeout$Watchdog.run(AsyncTimeout.java:187)
pool-9-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
Crashlytics Exception Handler1
at dalvik.system.VMStack.getThreadStackTrace(VMStack.java)
at java.lang.Thread.getStackTrace(Thread.java:1538)
at java.lang.Thread.getAllStackTraces(Thread.java:1588)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController.writeSessionEvent(CrashlyticsController.java:1427)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController.writeFatal(CrashlyticsController.java:1167)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController.access$600(CrashlyticsController.java:87)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController$6.call(CrashlyticsController.java:396)
at com.google.firebase.crashlytics.internal.common.CrashlyticsController$6.call(CrashlyticsController.java:388)
at com.google.firebase.crashlytics.internal.common.CrashlyticsBackgroundWorker$3.then(CrashlyticsBackgroundWorker.java:106)
at com.google.android.gms.tasks.zzf.run(zzf.java:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:60)
at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27)
at java.lang.Thread.run(Thread.java:764)
awaitEvenIfOnMainThread task continuation executor1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1092)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:60)
at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27)
at java.lang.Thread.run(Thread.java:764)
pool-14-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
pool-8-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Object.wait(Object.java:422)
at com.google.android.gms.internal.measurement.zzt.zzb(zzt.java:14)
at com.google.android.gms.internal.measurement.zzag.zza(zzag.java:151)
at com.google.android.gms.measurement.api.AppMeasurementSdk.getUserProperties(AppMeasurementSdk.java:16)
at com.google.firebase.analytics.connector.AnalyticsConnectorImpl.getUserProperties(AnalyticsConnectorImpl.java:44)
at com.google.firebase.remoteconfig.internal.ConfigFetchHandler.getUserProperties(ConfigFetchHandler.java:494)
at com.google.firebase.remoteconfig.internal.ConfigFetchHandler.fetchFromBackend(ConfigFetchHandler.java:299)
at com.google.firebase.remoteconfig.internal.ConfigFetchHandler.fetchFromBackendAndCacheResponse(ConfigFetchHandler.java:267)
at com.google.firebase.remoteconfig.internal.ConfigFetchHandler.lambda$fetchIfCacheExpiredAndNotThrottled$1(ConfigFetchHandler.java:205)
at com.google.firebase.remoteconfig.internal.ConfigFetchHandler$$Lambda$2.then(ConfigFetchHandler.java:4)
at com.google.android.gms.tasks.zzf.run(zzf.java:2)
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:764)
pool-11-thread-1
at java.lang.Object.wait(Object.java)
at java.lang.Thread.parkFor$(Thread.java:2137)
at sun.misc.Unsafe.park(Unsafe.java:358)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:461)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:362)
at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1091)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
TokenRefresher
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:181)
at android.os.HandlerThread.run(HandlerThread.java:65)
Howdy @deputat007 , I just realized you're on quite an old version of the SDK. That's why the fix didn't work for you. Please upgrade to the latest.
@lucazin , I suspect you have the same issue. Please make sure you're on the latest.
Enjoy!
Hello, how to fix this error?