Hello, how to fix this error?
Caused by 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.OneSignalSyncServiceUtils.doBackgroundSync(OneSignalSyncServiceUtils.java:175)
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:280)
at android.app.ActivityThread.main(ActivityThread.java:6748)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
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:
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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)
md5-0946e5a9ad926d489597e33fee90b140
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.12.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!
Most helpful comment
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!