OneSignal / OneSignal-Android-SDK

OneSignal is a free push notification service for mobile apps. This plugin makes it easy to integrate your native Android or Amazon app with OneSignal. https://onesignal.com
Other
603 stars 367 forks source link

[Bug]: 4.x.x - ANR - Native method - jdk.internal.misc.Unsafe.park #1904

Open wasif-life opened 10 months ago

wasif-life commented 10 months ago

What happened?

Alot of ANRs are being logged in Play Store console.

Android version : 12 and 13

OneSignal Implementation 'com.onesignal:OneSignal:[4.0.0, 4.99.99]' classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.10, 0.99.99]' classpath 'com.google.gms:google-services:4.3.15'

ANR LOGS

"main" tid=1 Blocked at com.onesignal.LocationController.onFocusChange (LocationController.java:324) at com.onesignal.OneSignal.onAppFocus (OneSignal.java:1409) at com.onesignal.OSFocusHandler.startOnFocusWork (OSFocusHandler.kt:53) at com.onesignal.ActivityLifecycleHandler.handleFocus (ActivityLifecycleHandler.java:197) at com.onesignal.ActivityLifecycleHandler.onActivityResumed (ActivityLifecycleHandler.java:95) at com.onesignal.ActivityLifecycleListener.onActivityResumed (ActivityLifecycleListener.java:91) at android.app.Application.dispatchActivityResumed (Application.java:443) at android.app.Activity.dispatchActivityResumed (Activity.java:1515) at android.app.Activity.onResume (Activity.java:2097) at androidx.fragment.app.FragmentActivity.onResume (FragmentActivity.java:309) at com.lifepharmacy.application.ui.dashboard.DashboardWithNativeBottomActivity.onResume (DashboardWithNativeBottomActivity.kt:171) at android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1584) at android.app.Activity.performResume (Activity.java:8699) at android.app.ActivityThread.performResumeActivity (ActivityThread.java:5041) at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:5085) at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:54) at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176) at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2440) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loopOnce (Looper.java:211) at android.os.Looper.loop (Looper.java:300) at android.app.ActivityThread.main (ActivityThread.java:8321) at java.lang.reflect.Method.invoke (Native method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:581) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1028)

"OSH_LocationHandlerThread" tid=105 Timed Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire (AbstractQueuedSynchronizer.java:717) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos (AbstractQueuedSynchronizer.java:1074) at java.util.concurrent.CountDownLatch.await (CountDownLatch.java:276) at com.google.android.gms.internal.location.zzau.getLastLocation (com.google.android.gms:play-services-location@@21.0.1:12) at com.onesignal.GMSLocationController$FusedLocationApiWrapper.getLastLocation (GMSLocationController.java:210) at com.onesignal.GMSLocationController$GoogleApiClientListener.onConnected (GMSLocationController.java:134) at com.google.android.gms.common.internal.zak.zad (com.google.android.gms:play-services-base@@18.1.0:11) at com.google.android.gms.common.api.internal.zabe.zab (com.google.android.gms:play-services-base@@18.1.0:3) at com.google.android.gms.common.api.internal.zaaw.zaC (com.google.android.gms:play-services-base@@18.1.0:11) at com.google.android.gms.common.api.internal.zaaw.zag (com.google.android.gms:play-services-base@@18.1.0:4) at com.google.android.gms.common.api.internal.zabi.onConnected (com.google.android.gms:play-services-base@@18.1.0:2) at com.google.android.gms.common.api.internal.zat.onConnected (com.google.android.gms:play-services-base@@18.1.0:1) at com.google.android.gms.common.internal.zah.onConnected (com.google.android.gms:play-services-base@@18.1.0:1) at com.google.android.gms.common.internal.zzf.zzd (com.google.android.gms:play-services-basement@@18.2.0:10) at com.google.android.gms.common.internal.zza.zza (com.google.android.gms:play-services-basement@@18.2.0:1) at com.google.android.gms.common.internal.zzc.zze (com.google.android.gms:play-services-basement@@18.2.0:3) at com.google.android.gms.common.internal.zzb.handleMessage (com.google.android.gms:play-services-basement@@18.2.0:31) at android.os.Handler.dispatchMessage (Handler.java:106) at android.os.Looper.loopOnce (Looper.java:211) at android.os.Looper.loop (Looper.java:300) at android.os.HandlerThread.run (HandlerThread.java:67)

"FinalizerDaemon" tid=9 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:210) at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:231) at java.lang.Daemons$FinalizerDaemon.runInternal (Daemons.java:309) at java.lang.Daemons$Daemon.run (Daemons.java:145) at java.lang.Thread.run (Thread.java:1012)

"FinalizerWatchdogDaemon" tid=10 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.lang.Object.wait (Object.java:524) at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded (Daemons.java:428) at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal (Daemons.java:408) at java.lang.Daemons$Daemon.run (Daemons.java:145) at java.lang.Thread.run (Thread.java:1012)

"ReferenceQueueDaemon" tid=11 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.lang.Object.wait (Object.java:524) at java.lang.Daemons$ReferenceQueueDaemon.runInternal (Daemons.java:239) at java.lang.Daemons$Daemon.run (Daemons.java:145) at java.lang.Thread.run (Thread.java:1012)

"AsyncTask #1" tid=32 Timed Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:1672) at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:460) at com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout (com.google.android.gms:play-services-basement@@18.2.0:3) at com.google.android.gms.ads.identifier.AdvertisingIdClient.zzb (com.google.android.gms:play-services-ads-identifier@@17.1.0:14) at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo (com.google.android.gms:play-services-ads-identifier@@17.1.0:3) at java.lang.reflect.Method.invoke (Native method) at com.facebook.internal.Utility.invokeMethodQuietly (Utility.java:923) at com.facebook.internal.AttributionIdentifiers.getAndroidIdViaReflection (AttributionIdentifiers.java:103) at com.facebook.internal.AttributionIdentifiers.getAndroidId (AttributionIdentifiers.java:79) at com.facebook.internal.AttributionIdentifiers.getAttributionIdentifiers (AttributionIdentifiers.java:180) at com.facebook.FacebookSdk.publishInstallAndWaitForResponse (FacebookSdk.java:660) at com.facebook.FacebookSdk$5.run (FacebookSdk.java:648) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644) at java.lang.Thread.run (Thread.java:1012)

"GmsDynamite" tid=40 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.lang.Object.wait (Object.java:524) at com.google.android.gms.dynamite.zza.run (com.google.android.gms:play-services-basement@@18.2.0:2)

"|ANR-WatchDog|" tid=48 Timed Waiting at java.lang.Thread.sleep (Native method) at java.lang.Thread.sleep (Thread.java:450) at java.lang.Thread.sleep (Thread.java:355) at io.sentry.android.core.ANRWatchDog.run (ANRWatchDog.java:78)

"Timer-0" tid=49 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.lang.Object.wait (Object.java:524) at java.util.TimerThread.mainLoop (Timer.java:534) at java.util.TimerThread.run (Timer.java:513)

"Timer-1" tid=50 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.lang.Object.wait (Object.java:524) at java.util.TimerThread.mainLoop (Timer.java:534) at java.util.TimerThread.run (Timer.java:513)

"Timer-2" tid=51 Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.lang.Object.wait (Object.java:524) at java.util.TimerThread.mainLoop (Timer.java:534) at java.util.TimerThread.run (Timer.java:513)

"OkHttp ConnectionPool" tid=52 Timed Waiting at java.lang.Object.wait (Native method) at com.android.okhttp.ConnectionPool$1.run (ConnectionPool.java:106) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644) at java.lang.Thread.run (Thread.java:1012)

"Measurement Worker" tid=55 Timed Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at m.ll.run (:com.google.android.gms.dynamite_measurementdynamite@234313038@23.43.13 (190400-0):71)

"Okio Watchdog" tid=87 Timed Waiting at java.lang.Object.wait (Native method) at com.android.okhttp.okio.AsyncTimeout.awaitTimeout (AsyncTimeout.java:325) at com.android.okhttp.okio.AsyncTimeout.access$000 (AsyncTimeout.java:42) at com.android.okhttp.okio.AsyncTimeout$Watchdog.run (AsyncTimeout.java:288)

"OS_GMS_LOCATION_FALLBACK" tid=102 Timed Waiting at java.lang.Thread.sleep (Native method) at java.lang.Thread.sleep (Thread.java:450) at java.lang.Thread.sleep (Thread.java:355) at com.onesignal.GMSLocationController$1.run (GMSLocationController.java:87) at java.lang.Thread.run (Thread.java:1012)

"Okio Watchdog" tid=112 Timed Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at okio.AsyncTimeout$Companion.awaitTimeout$okio (AsyncTimeout.kt:302) at okio.AsyncTimeout$Watchdog.run (AsyncTimeout.kt:183)

"Timer-4" tid=123 Timed Waiting at java.lang.Object.wait (Native method) at java.lang.Object.wait (Object.java:386) at java.util.TimerThread.mainLoop (Timer.java:560) at java.util.TimerThread.run (Timer.java:513)

"Signal Catcher" tid=3 Runnable

00 pc 0x00000000004c64ac /apex/com.android.art/lib64/libart.so (art::DumpNativeStack+108)

01 pc 0x00000000004bd774 /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack const+388)

02 pc 0x00000000004bcfc4 /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run+164)

03 pc 0x00000000004441f0 /apex/com.android.art/lib64/libart.so (art::ThreadList::RunCheckpoint+432)

04 pc 0x00000000004e491c /apex/com.android.art/lib64/libart.so (art::ThreadList::Dump+232)

05 pc 0x00000000004e4188 /apex/com.android.art/lib64/libart.so (art::ThreadList::DumpForSigQuit+244)

06 pc 0x00000000004e1928 /apex/com.android.art/lib64/libart.so (art::Runtime::DumpForSigQuit+48)

07 pc 0x00000000004e07c4 /apex/com.android.art/lib64/libart.so (art::SignalCatcher::HandleSigQuit+452)

08 pc 0x00000000004e033c /apex/com.android.art/lib64/libart.so (art::SignalCatcher::Run+264)

09 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

10 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"perfetto_hprof_listener" tid=7 Native

00 pc 0x00000000000e5b14 /apex/com.android.runtime/lib64/bionic/libc.so (read+4)

01 pc 0x0000000000026360 /apex/com.android.art/lib64/libperfetto_hprof.so (void* std::1::thread_proxy<std::1::tuple<std::1::unique_ptr<std::1::thread_struct, std::__1::default_delete >, ArtPlugin_Initialize::$_7> >+316)

02 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

03 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"Jit thread pool worker thread 0" tid=8 Native

00 pc 0x000000000008921c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)

01 pc 0x00000000002377f0 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks+140)

02 pc 0x00000000005bc510 /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask+120)

03 pc 0x00000000005bc2fc /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run+136)

04 pc 0x00000000005bc1d8 /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback+164)

05 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

06 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"HeapTaskDaemon" tid=12 Waiting

00 pc 0x0000000000089220 /apex/com.android.runtime/lib64/bionic/libc.so (syscall+32)

01 pc 0x000000000028fb20 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::TimedWait+252)

02 pc 0x00000000003a2b58 /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::GetTask+196)

03 pc 0x00000000003a2a14 /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks+48)

at dalvik.system.VMRuntime.runHeapTasks (Native method) at java.lang.Daemons$HeapTaskDaemon.runInternal (Daemons.java:687) at java.lang.Daemons$Daemon.run (Daemons.java:145) at java.lang.Thread.run (Thread.java:1012)

"binder:3962_1" tid=13 Native

00 pc 0x00000000000e5df4 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)

01 pc 0x0000000000097f1c /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)

02 pc 0x000000000005b458 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)

03 pc 0x000000000005b748 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)

04 pc 0x000000000005c064 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)

05 pc 0x000000000008bed8 /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)

06 pc 0x0000000000013460 /system/lib64/libutils.so (android::Thread::_threadLoop+416)

07 pc 0x00000000000cd55c /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)

08 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

09 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"binder:3962_2" tid=14 Native

00 pc 0x00000000000e5df4 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)

01 pc 0x0000000000097f1c /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)

02 pc 0x000000000005b458 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)

03 pc 0x000000000005b748 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)

04 pc 0x000000000005c064 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)

05 pc 0x000000000008bed8 /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)

06 pc 0x0000000000013460 /system/lib64/libutils.so (android::Thread::_threadLoop+416)

07 pc 0x00000000000cd55c /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)

08 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

09 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"binder:3962_3" tid=15 Native

00 pc 0x00000000000e5df4 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)

01 pc 0x0000000000097f1c /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)

02 pc 0x000000000005b458 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)

03 pc 0x000000000005b748 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)

04 pc 0x000000000005c064 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)

05 pc 0x000000000008bed8 /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)

06 pc 0x0000000000013460 /system/lib64/libutils.so (android::Thread::_threadLoop+416)

07 pc 0x00000000000cd55c /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)

08 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

09 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"binder:3962_4" tid=16 Native

00 pc 0x00000000000e5df4 /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)

01 pc 0x0000000000097f1c /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)

02 pc 0x000000000005b458 /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)

03 pc 0x000000000005b748 /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)

04 pc 0x000000000005c064 /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)

05 pc 0x000000000008bed8 /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)

06 pc 0x0000000000013460 /system/lib64/libutils.so (android::Thread::_threadLoop+416)

07 pc 0x00000000000cd55c /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)

08 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

09 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"3962-ScoutStateMachine" tid=17 Native

00 pc 0x00000000000e6dd8 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8)

01 pc 0x0000000000017edc /system/lib64/libutils.so (android::Looper::pollInner+188)

02 pc 0x0000000000017dc0 /system/lib64/libutils.so (android::Looper::pollOnce+112)

03 pc 0x00000000001666dc /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce+44)

at android.os.MessageQueue.nativePollOnce (Native method) at android.os.MessageQueue.next (MessageQueue.java:341) at android.os.Looper.loopOnce (Looper.java:169) at android.os.Looper.loop (Looper.java:300) at android.os.HandlerThread.run (HandlerThread.java:67)

"Profile Saver" tid=18 Native

00 pc 0x000000000008921c /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)

01 pc 0x00000000002377f0 /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks+140)

02 pc 0x00000000003d68a0 /apex/com.android.art/lib64/libart.so (art::ProfileSaver::Run+864)

03 pc 0x00000000003cc298 /apex/com.android.art/lib64/libart.so (art::ProfileSaver::RunProfileSaverThread+152)

04 pc 0x00000000000fba4c /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)

05 pc 0x000000000008e5f0 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"pool-3-thread-1" tid=19 Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:341) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block (AbstractQueuedSynchronizer.java:506) at java.util.concurrent.ForkJoinPool.unmanagedBlock (ForkJoinPool.java:3466) at java.util.concurrent.ForkJoinPool.managedBlock (ForkJoinPool.java:3437) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:1623) at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:435) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1071) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644) at java.lang.Thread.run (Thread.java:1012)

"ScionFrontendApi" tid=20 Timed Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:1672) at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:460) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1070) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644) at java.lang.Thread.run (Thread.java:1012)

"pool-16-thread-1" tid=21 Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:341) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block (AbstractQueuedSynchronizer.java:506) at java.util.concurrent.ForkJoinPool.unmanagedBlock (ForkJoinPool.java:3466) at java.util.concurrent.ForkJoinPool.managedBlock (ForkJoinPool.java:3437) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:1623) at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:435) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1071) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644) at java.lang.Thread.run (Thread.java:1012)

"pool-9-thread-1" tid=22 Timed Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252) at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:401) at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:903) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1070) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644) at java.lang.Thread.run (Thread.java:1012)

"pool-14-thread-1" tid=23 Timed Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252) at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:401) at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:903) at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1070) at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131) at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644) at java.lang.Thread.run (Thread.java:1012)

"pool-15-thread-1" tid=24 Timed Waiting at jdk.internal.misc.Unsafe.park (Native method) at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252) at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:401)

Steps to reproduce?

1.5k ANRs got logged in Play Store which is related to one signal.

What did you expect to happen?

No ANR due to onesignal SDK

OneSignal Android SDK version

'com.onesignal:OneSignal:[4.0.0, 4.99.99]'

Android version

13

Specific Android models

- Samsung a53x (Galaxy A53 5G) Android 13
- [OPPO OP4B9EL1 (Reno3)] Android 12

Relevant log output

"main" tid=1 Blocked
  at com.onesignal.LocationController.onFocusChange (LocationController.java:324)
  at com.onesignal.OneSignal.onAppFocus (OneSignal.java:1409)
  at com.onesignal.OSFocusHandler.startOnFocusWork (OSFocusHandler.kt:53)
  at com.onesignal.ActivityLifecycleHandler.handleFocus (ActivityLifecycleHandler.java:197)
  at com.onesignal.ActivityLifecycleHandler.onActivityResumed (ActivityLifecycleHandler.java:95)
  at com.onesignal.ActivityLifecycleListener.onActivityResumed (ActivityLifecycleListener.java:91)
  at android.app.Application.dispatchActivityResumed (Application.java:443)
  at android.app.Activity.dispatchActivityResumed (Activity.java:1515)
  at android.app.Activity.onResume (Activity.java:2097)
  at androidx.fragment.app.FragmentActivity.onResume (FragmentActivity.java:309)
  at com.lifepharmacy.application.ui.dashboard.DashboardWithNativeBottomActivity.onResume (DashboardWithNativeBottomActivity.kt:171)
  at android.app.Instrumentation.callActivityOnResume (Instrumentation.java:1584)
  at android.app.Activity.performResume (Activity.java:8699)
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:5041)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:5085)
  at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:54)
  at android.app.servertransaction.ActivityTransactionItem.execute (ActivityTransactionItem.java:45)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2440)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:211)
  at android.os.Looper.loop (Looper.java:300)
  at android.app.ActivityThread.main (ActivityThread.java:8321)
  at java.lang.reflect.Method.invoke (Native method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:581)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1028)

"OSH_LocationHandlerThread" tid=105 Timed Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire (AbstractQueuedSynchronizer.java:717)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos (AbstractQueuedSynchronizer.java:1074)
  at java.util.concurrent.CountDownLatch.await (CountDownLatch.java:276)
  at com.google.android.gms.internal.location.zzau.getLastLocation (com.google.android.gms:play-services-location@@21.0.1:12)
  at com.onesignal.GMSLocationController$FusedLocationApiWrapper.getLastLocation (GMSLocationController.java:210)
  at com.onesignal.GMSLocationController$GoogleApiClientListener.onConnected (GMSLocationController.java:134)
  at com.google.android.gms.common.internal.zak.zad (com.google.android.gms:play-services-base@@18.1.0:11)
  at com.google.android.gms.common.api.internal.zabe.zab (com.google.android.gms:play-services-base@@18.1.0:3)
  at com.google.android.gms.common.api.internal.zaaw.zaC (com.google.android.gms:play-services-base@@18.1.0:11)
  at com.google.android.gms.common.api.internal.zaaw.zag (com.google.android.gms:play-services-base@@18.1.0:4)
  at com.google.android.gms.common.api.internal.zabi.onConnected (com.google.android.gms:play-services-base@@18.1.0:2)
  at com.google.android.gms.common.api.internal.zat.onConnected (com.google.android.gms:play-services-base@@18.1.0:1)
  at com.google.android.gms.common.internal.zah.onConnected (com.google.android.gms:play-services-base@@18.1.0:1)
  at com.google.android.gms.common.internal.zzf.zzd (com.google.android.gms:play-services-basement@@18.2.0:10)
  at com.google.android.gms.common.internal.zza.zza (com.google.android.gms:play-services-basement@@18.2.0:1)
  at com.google.android.gms.common.internal.zzc.zze (com.google.android.gms:play-services-basement@@18.2.0:3)
  at com.google.android.gms.common.internal.zzb.handleMessage (com.google.android.gms:play-services-basement@@18.2.0:31)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loopOnce (Looper.java:211)
  at android.os.Looper.loop (Looper.java:300)
  at android.os.HandlerThread.run (HandlerThread.java:67)

"FinalizerDaemon" tid=9 Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:210)
  at java.lang.ref.ReferenceQueue.remove (ReferenceQueue.java:231)
  at java.lang.Daemons$FinalizerDaemon.runInternal (Daemons.java:309)
  at java.lang.Daemons$Daemon.run (Daemons.java:145)
  at java.lang.Thread.run (Thread.java:1012)

"FinalizerWatchdogDaemon" tid=10 Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.lang.Object.wait (Object.java:524)
  at java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded (Daemons.java:428)
  at java.lang.Daemons$FinalizerWatchdogDaemon.runInternal (Daemons.java:408)
  at java.lang.Daemons$Daemon.run (Daemons.java:145)
  at java.lang.Thread.run (Thread.java:1012)

"ReferenceQueueDaemon" tid=11 Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.lang.Object.wait (Object.java:524)
  at java.lang.Daemons$ReferenceQueueDaemon.runInternal (Daemons.java:239)
  at java.lang.Daemons$Daemon.run (Daemons.java:145)
  at java.lang.Thread.run (Thread.java:1012)

"AsyncTask #1" tid=32 Timed Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:1672)
  at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:460)
  at com.google.android.gms.common.BlockingServiceConnection.getServiceWithTimeout (com.google.android.gms:play-services-basement@@18.2.0:3)
  at com.google.android.gms.ads.identifier.AdvertisingIdClient.zzb (com.google.android.gms:play-services-ads-identifier@@17.1.0:14)
  at com.google.android.gms.ads.identifier.AdvertisingIdClient.getAdvertisingIdInfo (com.google.android.gms:play-services-ads-identifier@@17.1.0:3)
  at java.lang.reflect.Method.invoke (Native method)
  at com.facebook.internal.Utility.invokeMethodQuietly (Utility.java:923)
  at com.facebook.internal.AttributionIdentifiers.getAndroidIdViaReflection (AttributionIdentifiers.java:103)
  at com.facebook.internal.AttributionIdentifiers.getAndroidId (AttributionIdentifiers.java:79)
  at com.facebook.internal.AttributionIdentifiers.getAttributionIdentifiers (AttributionIdentifiers.java:180)
  at com.facebook.FacebookSdk.publishInstallAndWaitForResponse (FacebookSdk.java:660)
  at com.facebook.FacebookSdk$5.run (FacebookSdk.java:648)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)

"GmsDynamite" tid=40 Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.lang.Object.wait (Object.java:524)
  at com.google.android.gms.dynamite.zza.run (com.google.android.gms:play-services-basement@@18.2.0:2)

"|ANR-WatchDog|" tid=48 Timed Waiting
  at java.lang.Thread.sleep (Native method)
  at java.lang.Thread.sleep (Thread.java:450)
  at java.lang.Thread.sleep (Thread.java:355)
  at io.sentry.android.core.ANRWatchDog.run (ANRWatchDog.java:78)

"Timer-0" tid=49 Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.lang.Object.wait (Object.java:524)
  at java.util.TimerThread.mainLoop (Timer.java:534)
  at java.util.TimerThread.run (Timer.java:513)

"Timer-1" tid=50 Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.lang.Object.wait (Object.java:524)
  at java.util.TimerThread.mainLoop (Timer.java:534)
  at java.util.TimerThread.run (Timer.java:513)

"Timer-2" tid=51 Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.lang.Object.wait (Object.java:524)
  at java.util.TimerThread.mainLoop (Timer.java:534)
  at java.util.TimerThread.run (Timer.java:513)

"OkHttp ConnectionPool" tid=52 Timed Waiting
  at java.lang.Object.wait (Native method)
  at com.android.okhttp.ConnectionPool$1.run (ConnectionPool.java:106)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)

"Measurement Worker" tid=55 Timed Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at m.ll.run (:com.google.android.gms.dynamite_measurementdynamite@234313038@23.43.13 (190400-0):71)

"Okio Watchdog" tid=87 Timed Waiting
  at java.lang.Object.wait (Native method)
  at com.android.okhttp.okio.AsyncTimeout.awaitTimeout (AsyncTimeout.java:325)
  at com.android.okhttp.okio.AsyncTimeout.access$000 (AsyncTimeout.java:42)
  at com.android.okhttp.okio.AsyncTimeout$Watchdog.run (AsyncTimeout.java:288)

"OS_GMS_LOCATION_FALLBACK" tid=102 Timed Waiting
  at java.lang.Thread.sleep (Native method)
  at java.lang.Thread.sleep (Thread.java:450)
  at java.lang.Thread.sleep (Thread.java:355)
  at com.onesignal.GMSLocationController$1.run (GMSLocationController.java:87)
  at java.lang.Thread.run (Thread.java:1012)

"Okio Watchdog" tid=112 Timed Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at okio.AsyncTimeout$Companion.awaitTimeout$okio (AsyncTimeout.kt:302)
  at okio.AsyncTimeout$Watchdog.run (AsyncTimeout.kt:183)

"Timer-4" tid=123 Timed Waiting
  at java.lang.Object.wait (Native method)
  at java.lang.Object.wait (Object.java:386)
  at java.util.TimerThread.mainLoop (Timer.java:560)
  at java.util.TimerThread.run (Timer.java:513)

"Signal Catcher" tid=3 Runnable
  #00  pc 0x00000000004c64ac  /apex/com.android.art/lib64/libart.so (art::DumpNativeStack+108)
  #01  pc 0x00000000004bd774  /apex/com.android.art/lib64/libart.so (art::Thread::DumpStack const+388)
  #02  pc 0x00000000004bcfc4  /apex/com.android.art/lib64/libart.so (art::DumpCheckpoint::Run+164)
  #03  pc 0x00000000004441f0  /apex/com.android.art/lib64/libart.so (art::ThreadList::RunCheckpoint+432)
  #04  pc 0x00000000004e491c  /apex/com.android.art/lib64/libart.so (art::ThreadList::Dump+232)
  #05  pc 0x00000000004e4188  /apex/com.android.art/lib64/libart.so (art::ThreadList::DumpForSigQuit+244)
  #06  pc 0x00000000004e1928  /apex/com.android.art/lib64/libart.so (art::Runtime::DumpForSigQuit+48)
  #07  pc 0x00000000004e07c4  /apex/com.android.art/lib64/libart.so (art::SignalCatcher::HandleSigQuit+452)
  #08  pc 0x00000000004e033c  /apex/com.android.art/lib64/libart.so (art::SignalCatcher::Run+264)
  #09  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #10  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"perfetto_hprof_listener" tid=7 Native
  #00  pc 0x00000000000e5b14  /apex/com.android.runtime/lib64/bionic/libc.so (read+4)
  #01  pc 0x0000000000026360  /apex/com.android.art/lib64/libperfetto_hprof.so (void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, ArtPlugin_Initialize::$_7> >+316)
  #02  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #03  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"Jit thread pool worker thread 0" tid=8 Native
  #00  pc 0x000000000008921c  /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)
  #01  pc 0x00000000002377f0  /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks+140)
  #02  pc 0x00000000005bc510  /apex/com.android.art/lib64/libart.so (art::ThreadPool::GetTask+120)
  #03  pc 0x00000000005bc2fc  /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Run+136)
  #04  pc 0x00000000005bc1d8  /apex/com.android.art/lib64/libart.so (art::ThreadPoolWorker::Callback+164)
  #05  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #06  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"HeapTaskDaemon" tid=12 Waiting
  #00  pc 0x0000000000089220  /apex/com.android.runtime/lib64/bionic/libc.so (syscall+32)
  #01  pc 0x000000000028fb20  /apex/com.android.art/lib64/libart.so (art::ConditionVariable::TimedWait+252)
  #02  pc 0x00000000003a2b58  /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::GetTask+196)
  #03  pc 0x00000000003a2a14  /apex/com.android.art/lib64/libart.so (art::gc::TaskProcessor::RunAllTasks+48)
  at dalvik.system.VMRuntime.runHeapTasks (Native method)
  at java.lang.Daemons$HeapTaskDaemon.runInternal (Daemons.java:687)
  at java.lang.Daemons$Daemon.run (Daemons.java:145)
  at java.lang.Thread.run (Thread.java:1012)

"binder:3962_1" tid=13 Native
  #00  pc 0x00000000000e5df4  /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
  #01  pc 0x0000000000097f1c  /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
  #02  pc 0x000000000005b458  /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)
  #03  pc 0x000000000005b748  /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)
  #04  pc 0x000000000005c064  /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)
  #05  pc 0x000000000008bed8  /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)
  #06  pc 0x0000000000013460  /system/lib64/libutils.so (android::Thread::_threadLoop+416)
  #07  pc 0x00000000000cd55c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)
  #08  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #09  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"binder:3962_2" tid=14 Native
  #00  pc 0x00000000000e5df4  /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
  #01  pc 0x0000000000097f1c  /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
  #02  pc 0x000000000005b458  /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)
  #03  pc 0x000000000005b748  /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)
  #04  pc 0x000000000005c064  /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)
  #05  pc 0x000000000008bed8  /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)
  #06  pc 0x0000000000013460  /system/lib64/libutils.so (android::Thread::_threadLoop+416)
  #07  pc 0x00000000000cd55c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)
  #08  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #09  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"binder:3962_3" tid=15 Native
  #00  pc 0x00000000000e5df4  /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
  #01  pc 0x0000000000097f1c  /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
  #02  pc 0x000000000005b458  /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)
  #03  pc 0x000000000005b748  /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)
  #04  pc 0x000000000005c064  /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)
  #05  pc 0x000000000008bed8  /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)
  #06  pc 0x0000000000013460  /system/lib64/libutils.so (android::Thread::_threadLoop+416)
  #07  pc 0x00000000000cd55c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)
  #08  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #09  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"binder:3962_4" tid=16 Native
  #00  pc 0x00000000000e5df4  /apex/com.android.runtime/lib64/bionic/libc.so (__ioctl+4)
  #01  pc 0x0000000000097f1c  /apex/com.android.runtime/lib64/bionic/libc.so (ioctl+156)
  #02  pc 0x000000000005b458  /system/lib64/libbinder.so (android::IPCThreadState::talkWithDriver+280)
  #03  pc 0x000000000005b748  /system/lib64/libbinder.so (android::IPCThreadState::getAndExecuteCommand+24)
  #04  pc 0x000000000005c064  /system/lib64/libbinder.so (android::IPCThreadState::joinThreadPool+68)
  #05  pc 0x000000000008bed8  /system/lib64/libbinder.so (android::PoolThread::threadLoop+24)
  #06  pc 0x0000000000013460  /system/lib64/libutils.so (android::Thread::_threadLoop+416)
  #07  pc 0x00000000000cd55c  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell+140)
  #08  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #09  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"3962-ScoutStateMachine" tid=17 Native
  #00  pc 0x00000000000e6dd8  /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8)
  #01  pc 0x0000000000017edc  /system/lib64/libutils.so (android::Looper::pollInner+188)
  #02  pc 0x0000000000017dc0  /system/lib64/libutils.so (android::Looper::pollOnce+112)
  #03  pc 0x00000000001666dc  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce+44)
  at android.os.MessageQueue.nativePollOnce (Native method)
  at android.os.MessageQueue.next (MessageQueue.java:341)
  at android.os.Looper.loopOnce (Looper.java:169)
  at android.os.Looper.loop (Looper.java:300)
  at android.os.HandlerThread.run (HandlerThread.java:67)

"Profile Saver" tid=18 Native
  #00  pc 0x000000000008921c  /apex/com.android.runtime/lib64/bionic/libc.so (syscall+28)
  #01  pc 0x00000000002377f0  /apex/com.android.art/lib64/libart.so (art::ConditionVariable::WaitHoldingLocks+140)
  #02  pc 0x00000000003d68a0  /apex/com.android.art/lib64/libart.so (art::ProfileSaver::Run+864)
  #03  pc 0x00000000003cc298  /apex/com.android.art/lib64/libart.so (art::ProfileSaver::RunProfileSaverThread+152)
  #04  pc 0x00000000000fba4c  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start+204)
  #05  pc 0x000000000008e5f0  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

"pool-3-thread-1" tid=19 Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:341)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block (AbstractQueuedSynchronizer.java:506)
  at java.util.concurrent.ForkJoinPool.unmanagedBlock (ForkJoinPool.java:3466)
  at java.util.concurrent.ForkJoinPool.managedBlock (ForkJoinPool.java:3437)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:1623)
  at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:435)
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1071)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)

"ScionFrontendApi" tid=20 Timed Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos (AbstractQueuedSynchronizer.java:1672)
  at java.util.concurrent.LinkedBlockingQueue.poll (LinkedBlockingQueue.java:460)
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1070)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)

"pool-16-thread-1" tid=21 Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.park (LockSupport.java:341)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionNode.block (AbstractQueuedSynchronizer.java:506)
  at java.util.concurrent.ForkJoinPool.unmanagedBlock (ForkJoinPool.java:3466)
  at java.util.concurrent.ForkJoinPool.managedBlock (ForkJoinPool.java:3437)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await (AbstractQueuedSynchronizer.java:1623)
  at java.util.concurrent.LinkedBlockingQueue.take (LinkedBlockingQueue.java:435)
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1071)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)

"pool-9-thread-1" tid=22 Timed Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252)
  at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:401)
  at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:903)
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1070)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)

"pool-14-thread-1" tid=23 Timed Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252)
  at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:401)
  at java.util.concurrent.SynchronousQueue.poll (SynchronousQueue.java:903)
  at java.util.concurrent.ThreadPoolExecutor.getTask (ThreadPoolExecutor.java:1070)
  at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1131)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:644)
  at java.lang.Thread.run (Thread.java:1012)

"pool-15-thread-1" tid=24 Timed Waiting
  at jdk.internal.misc.Unsafe.park (Native method)
  at java.util.concurrent.locks.LockSupport.parkNanos (LockSupport.java:252)
  at java.util.concurrent.SynchronousQueue$TransferStack.transfer (SynchronousQueue.java:401)

Code of Conduct

jennantilla commented 9 months ago

@wasif-life thanks for reaching out! We're investigating this and will get back to you as soon as possible.

chokokatana commented 3 months ago

I'm already seeing https://github.com/OneSignal/OneSignal-Android-SDK/issues/1791, https://github.com/OneSignal/OneSignal-Android-SDK/issues/1612, https://github.com/OneSignal/OneSignal-Android-SDK/issues/1596, with the same stacktrace. Still getting the same problem with version 4.8.9:

      OS_GMS_LOCATION_FALLBACK (waiting):tid=24 systid=15114 
       at jdk.internal.misc.Unsafe.park(Native method)
       at java.util.concurrent.locks.LockSupport.park(LockSupport.java:211)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:715)
       at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:938)
       at java.util.concurrent.locks.ReentrantLock$Sync.lock(ReentrantLock.java:153)
       at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:322)
       at com.google.android.gms.common.api.internal.zabe.disconnect(com.google.android.gms:play-services-base@@18.3.0:1)
       at java.lang.reflect.Method.invoke(Native method)
       at com.onesignal.GoogleApiClientCompatProxy.disconnect(GoogleApiClientCompatProxy.java:54)
       at com.onesignal.GMSLocationController.fireFailedComplete(GMSLocationController.java:102)
       at com.onesignal.LocationController.fireFailedComplete(LocationController.java:359)
       at com.onesignal.GMSLocationController$1.run(GMSLocationController.java:89)
       at java.lang.Thread.run(Thread.java:1012)

      main (blocked):tid=1 systid=13881 | waiting to lock <0x0964ed67> (com.onesignal.k) held by thread 24
       at com.onesignal.LocationController.onFocusChange(LocationController.java:335)
       at com.onesignal.OneSignal.onAppFocus(OneSignal.java:1409)
       at com.onesignal.OSFocusHandler.startOnFocusWork(OSFocusHandler.java:53)
       at com.onesignal.ActivityLifecycleHandler.handleFocus(ActivityLifecycleHandler.java:197)
       at com.onesignal.ActivityLifecycleHandler.onActivityResumed(ActivityLifecycleHandler.java:95)
       at com.onesignal.ActivityLifecycleListener.onActivityResumed(ActivityLifecycleListener.java:91)
       at android.app.Application.dispatchActivityResumed(Application.java:450)
       at android.app.Activity.dispatchActivityResumed(Activity.java:1523)
       at android.app.Activity.onResume(Activity.java:2124)
       at androidx.fragment.app.FragmentActivity.onResume(FragmentActivity.java:309)
       at com.geodb.wallace.presentation.base.BaseActivity.onResume(BaseActivity.kt:71)
       at com.geodb.wallace.presentation.main.MainActivity.onResume(MainActivity.kt:119)
       at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1603)
       at android.app.Activity.performResume(Activity.java:9134)
       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:5399)
       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:5508)
       at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:57)
       at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
       at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loopOnce(Looper.java:230)
       at android.os.Looper.loop(Looper.java:319)
       at android.app.ActivityThread.main(ActivityThread.java:8919)
       at java.lang.reflect.Method.invoke(Native method)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
…

Maybe the access to the synchronized block shouldn't happen on the main thread?. There's another background thread locking the access, so if the onFocus spawned a thread rather than locking directly, at least it wouldn't deadlock the main thread.