Onesignal-android-sdk: android.database.sqlite.SQLiteDatabaseLockedException

Created on 8 Apr 2020  Â·  23Comments  Â·  Source: OneSignal/OneSignal-Android-SDK

Description:
I was running version 3.11.1 of the SDK for a long time and recently updated it to version 3.12.7 and then to 3.13.0. After that I'm receiving crash logs related to the SDK with android.database.sqlite.SQLiteDatabaseLockedException. Besides that I've updated target and compile SDK versions from 28 to 29.

Environment

  • OneSignal SDK: 3.13.0
  • Android SDK: 29
  • Build tools: 29.0.3
  • Gradle: 5.6.4
  • Gradle Android plugin: 3.6.1
  • Steps to Reproduce Issue:

    In fact I don't have steps to reproduce, but I hope the attached stack traces could help.

    Stack traces:

    1. Samsung Galaxy Grand Duos (Android 4.2.2)

    Android: 4.2.2
    Android Build: JDQ39
    Manufacturer: samsung
    Model: GT-I9082
    Start Date: 2020-04-08T07:07:51.482Z
    Date: 2020-04-08T07:07:57.386Z
    
    android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5)
      at android.database.sqlite.SQLiteConnection.nativeExecuteForLong(SQLiteConnection.java:-2)
      at android.database.sqlite.SQLiteConnection.executeForLong(SQLiteConnection.java:784)
      at android.database.sqlite.SQLiteSession.executeForLong(SQLiteSession.java:652)
      at android.database.sqlite.SQLiteStatement.simpleQueryForLong(SQLiteStatement.java:107)
      at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:813)
      at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:801)
      at android.database.sqlite.SQLiteDatabase.getVersion(SQLiteDatabase.java:968)
      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:242)
      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
      at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries(OneSignalDbHelper.java:137)
      at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:26)
      at java.lang.Thread.run(Thread.java:856)
    
    Thread 1:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
    5   java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:970)
    6   java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1279)
    7   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:202)
    8   android.app.SharedPreferencesImpl$EditorImpl$1.run(SharedPreferencesImpl.java:364)
    9   android.app.QueuedWork.waitToFinish(QueuedWork.java:88)
    10  android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2750)
    11  android.app.ActivityThread.access$2000(ActivityThread.java:150)
    12  android.app.ActivityThread$H.handleMessage(ActivityThread.java:1383)
    13  android.os.Handler.dispatchMessage(Handler.java:99)
    14  android.os.Looper.loop(Looper.java:137)
    15  android.app.ActivityThread.main(ActivityThread.java:5283)
    16  java.lang.reflect.Method.invokeNative(Method.java:-2)
    17  java.lang.reflect.Method.invoke(Method.java:511)
    18  com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
    19  com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
    20  dalvik.system.NativeStart.main(NativeStart.java:-2)
    
    Thread 5879:
    0   dalvik.system.NativeStart.run(NativeStart.java:-2)
    
    Thread 5880:
    0   dalvik.system.NativeStart.run(NativeStart.java:-2)
    
    Thread 5881:
    0   dalvik.system.NativeStart.run(NativeStart.java:-2)
    
    Thread 5882:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:364)
    2   java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:130)
    3   java.lang.Thread.run(Thread.java:856)
    
    Thread 5883:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:401)
    2   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:102)
    3   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:73)
    4   java.lang.Daemons$FinalizerDaemon.run(Daemons.java:170)
    5   java.lang.Thread.run(Thread.java:856)
    
    Thread 5884:
    0   java.lang.VMThread.sleep(VMThread.java:-2)
    1   java.lang.Thread.sleep(Thread.java:1031)
    2   java.lang.Thread.sleep(Thread.java:1013)
    3   java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:248)
    4   java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:258)
    5   java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:212)
    6   java.lang.Thread.run(Thread.java:856)
    
    Thread 5885:
    0   dalvik.system.NativeStart.run(NativeStart.java:-2)
    
    Thread 5886:
    0   dalvik.system.NativeStart.run(NativeStart.java:-2)
    
    Thread 5891:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   com.google.android.gms.common.util.concurrent.zza.run
    10  java.lang.Thread.run(Thread.java:856)
    
    Thread 5894:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1009)
    5   java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1302)
    6   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:248)
    7   com.google.android.gms.tasks.Tasks$zza.await
    8   com.google.android.gms.tasks.Tasks.await
    9   com.google.firebase.iid.FirebaseInstanceId.zza(com.google.firebase:firebase-iid@@20.1.4:98)
    10  com.google.firebase.iid.FirebaseInstanceId.getToken(com.google.firebase:firebase-iid@@20.1.4:94)
    11  com.google.firebase.iid.FirebaseInstanceId.zzc(com.google.firebase:firebase-iid@@20.1.4:97)
    12  com.google.firebase.iid.zzbb.zzc(com.google.firebase:firebase-iid@@20.1.4:42)
    13  com.google.firebase.iid.zzbb.run(com.google.firebase:firebase-iid@@20.1.4:23)
    14  java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
    15  java.util.concurrent.FutureTask.run(FutureTask.java:234)
    16  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
    17  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
    18  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    19  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    20  com.google.android.gms.common.util.concurrent.zza.run
    21  java.lang.Thread.run(Thread.java:856)
    
    Thread 5895:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   java.lang.Thread.run(Thread.java:856)
    
    Thread 5896:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   com.google.android.gms.common.util.concurrent.zza.run
    10  java.lang.Thread.run(Thread.java:856)
    
    Thread 5898:
    0   android.os.FileUtils.setPermissions(FileUtils.java:-2)
    1   android.app.ContextImpl.setFilePermissionsFromMode(ContextImpl.java:2358)
    2   android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:599)
    3   android.app.SharedPreferencesImpl.access$800(SharedPreferencesImpl.java:52)
    4   android.app.SharedPreferencesImpl$2.run(SharedPreferencesImpl.java:511)
    5   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    6   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    7   java.lang.Thread.run(Thread.java:856)
    
    Thread 5899:
    0   android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:741)
    2   android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration(SQLiteConnection.java:557)
    3   android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:391)
    4   android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:238)
    5   android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:515)
    6   android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:207)
    7   android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:178)
    8   android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:875)
    9   android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:843)
    10  android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
    11  android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1188)
    12  android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:236)
    13  android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:224)
    14  android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:164)
    15  com.google.android.gms.measurement.internal.zzfi.getWritableDatabase(com.google.android.gms:play-services-measurement-impl@@17.3.0:4)
    16  com.google.android.gms.measurement.internal.zzff.zzae(com.google.android.gms:play-services-measurement-impl@@17.3.0:321)
    17  com.google.android.gms.measurement.internal.zzff.zza(com.google.android.gms:play-services-measurement-impl@@17.3.0:28)
    18  com.google.android.gms.measurement.internal.zzff.zza(com.google.android.gms:play-services-measurement-impl@@17.3.0:100)
    19  com.google.android.gms.measurement.internal.zziz.zza(com.google.android.gms:play-services-measurement-impl@@17.3.0:62)
    20  com.google.android.gms.measurement.internal.zzhr.zza(com.google.android.gms:play-services-measurement-impl@@17.3.0:326)
    21  com.google.android.gms.measurement.internal.zzhw.run(com.google.android.gms:play-services-measurement-impl@@17.3.0:2)
    22  java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
    23  java.util.concurrent.FutureTask.run(FutureTask.java:234)
    24  com.google.android.gms.measurement.internal.zzgn.run(com.google.android.gms:play-services-measurement-impl@@17.3.0:21)
    
    Thread 5902:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   java.lang.Thread.run(Thread.java:856)
    
    Thread 5904:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
    5   java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:505)
    6   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
    7   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
    8   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
    9   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
    10  java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    11  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    12  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    13  java.lang.Thread.run(Thread.java:856)
    
    Thread 5905:
    0   java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:138)
    1   java.lang.IntegralToString.convertInt(IntegralToString.java:209)
    2   java.lang.IntegralToString.appendInt(IntegralToString.java:173)
    3   java.lang.StringBuilder.append(StringBuilder.java:139)
    4   org.apache.harmony.security.asn1.ObjectIdentifier.toString(ObjectIdentifier.java:140)
    5   org.apache.harmony.security.x509.Extension.getExtnID(Extension.java:150)
    6   org.apache.harmony.security.x509.Extensions.getExtensionByOID(Extensions.java:144)
    7   org.apache.harmony.security.x509.Extensions.valueOfSubjectAlternativeName(Extensions.java:253)
    8   org.apache.harmony.security.provider.cert.X509CertImpl.getSubjectAlternativeNames(X509CertImpl.java:321)
    9   javax.net.ssl.DefaultHostnameVerifier.getSubjectAltNames(DefaultHostnameVerifier.java:95)
    10  javax.net.ssl.DefaultHostnameVerifier.verifyHostName(DefaultHostnameVerifier.java:74)
    11  javax.net.ssl.DefaultHostnameVerifier.verify(DefaultHostnameVerifier.java:51)
    12  javax.net.ssl.DefaultHostnameVerifier.verify(DefaultHostnameVerifier.java:44)
    13  libcore.net.http.HttpConnection.verifySecureSocketHostname(HttpConnection.java:222)
    14  libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:446)
    15  libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290)
    16  libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240)
    17  libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:282)
    18  libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
    19  libcore.net.http.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:134)
    20  io.fabric.sdk.android.services.network.HttpRequest.code(HttpRequest.java:1357)
    21  io.fabric.sdk.android.services.settings.DefaultSettingsSpiCall.handleResponse(DefaultSettingsSpiCall.java:104)
    22  io.fabric.sdk.android.services.settings.DefaultSettingsSpiCall.invoke(DefaultSettingsSpiCall.java:88)
    23  io.fabric.sdk.android.services.settings.DefaultSettingsController.loadSettingsData(DefaultSettingsController.java:93)
    24  io.fabric.sdk.android.services.settings.DefaultSettingsController.loadSettingsData(DefaultSettingsController.java:70)
    25  io.fabric.sdk.android.services.settings.Settings.loadSettingsData(Settings.java:156)
    26  io.fabric.sdk.android.Onboarding.retrieveSettingsData(Onboarding.java:128)
    27  io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:100)
    28  io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:46)
    29  io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:63)
    30  io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:28)
    31  io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(AsyncTask.java:311)
    32  java.util.concurrent.FutureTask.run(FutureTask.java:234)
    33  java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
    34  java.util.concurrent.FutureTask.run(FutureTask.java:234)
    35  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    36  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    37  java.lang.Thread.run(Thread.java:856)
    
    Thread 5906:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
    5   java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:505)
    6   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.performOperation(DependencyPriorityBlockingQueue.java:197)
    7   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.get(DependencyPriorityBlockingQueue.java:236)
    8   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:65)
    9   io.fabric.sdk.android.services.concurrency.DependencyPriorityBlockingQueue.take(DependencyPriorityBlockingQueue.java:46)
    10  java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    11  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    12  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    13  java.lang.Thread.run(Thread.java:856)
    
    Thread 5911:
    0   libcore.io.Posix.remove(Posix.java:-2)
    1   libcore.io.ForwardingOs.remove(ForwardingOs.java:105)
    2   java.io.File.delete(File.java:313)
    3   io.fabric.sdk.android.services.events.QueueFileEventStorage.move(QueueFileEventStorage.java:110)
    4   io.fabric.sdk.android.services.events.QueueFileEventStorage.rollOver(QueueFileEventStorage.java:84)
    5   io.fabric.sdk.android.services.events.EventsFilesManager.rollFileOver(EventsFilesManager.java:114)
    6   com.crashlytics.android.answers.EnabledSessionAnalyticsManagerStrategy.rollFileOver(EnabledSessionAnalyticsManagerStrategy.java:234)
    7   com.crashlytics.android.answers.AnswersEventsHandler$6.run(AnswersEventsHandler.java:160)
    8   java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:390)
    9   java.util.concurrent.FutureTask.run(FutureTask.java:234)
    10  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:153)
    11  java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:267)
    12  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    13  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    14  io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
    15  io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
    16  java.lang.Thread.run(Thread.java:856)
    
    Thread 5913:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   java.lang.Thread.run(Thread.java:856)
    
    Thread 5914:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   java.lang.Thread.run(Thread.java:856)
    
    Thread 5915:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
    5   java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:970)
    6   java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1279)
    7   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:202)
    8   com.google.android.gms.tasks.Tasks$zza.await
    9   com.google.android.gms.tasks.Tasks.await
    10  com.google.firebase.iid.zzau.zza(com.google.firebase:firebase-iid@@20.1.4:82)
    11  com.google.firebase.iid.zzt.zza(com.google.firebase:firebase-iid@@20.1.4:73)
    12  com.google.firebase.iid.zzs.run(com.google.firebase:firebase-iid@@20.1.4:-1)
    13  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    14  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    15  com.google.android.gms.common.util.concurrent.zza.run
    16  java.lang.Thread.run(Thread.java:856)
    
    Thread 5917:
    0   libcore.io.Posix.writeBytes(Posix.java:-2)
    1   libcore.io.Posix.write(Posix.java:187)
    2   libcore.io.BlockGuardOs.write(BlockGuardOs.java:197)
    3   libcore.io.IoBridge.write(IoBridge.java:457)
    4   java.io.FileOutputStream.write(FileOutputStream.java:187)
    5   com.crashlytics.android.core.CodedOutputStream.refreshBuffer(CodedOutputStream.java:668)
    6   com.crashlytics.android.core.CodedOutputStream.flush(CodedOutputStream.java:678)
    7   io.fabric.sdk.android.services.common.CommonUtils.flushOrLog(CommonUtils.java:711)
    8   com.crashlytics.android.core.CrashlyticsController.writeSessionPartFile(CrashlyticsController.java:1105)
    9   com.crashlytics.android.core.CrashlyticsController.writeSessionDevice(CrashlyticsController.java:1252)
    10  com.crashlytics.android.core.CrashlyticsController.doOpenSession(CrashlyticsController.java:565)
    11  com.crashlytics.android.core.CrashlyticsController.access$700(CrashlyticsController.java:69)
    12  com.crashlytics.android.core.CrashlyticsController$12.call(CrashlyticsController.java:470)
    13  com.crashlytics.android.core.CrashlyticsController$12.call(CrashlyticsController.java:467)
    14  com.crashlytics.android.core.CrashlyticsBackgroundWorker$2.call(CrashlyticsBackgroundWorker.java:99)
    15  java.util.concurrent.FutureTask.run(FutureTask.java:234)
    16  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    17  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    18  io.fabric.sdk.android.services.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:75)
    19  io.fabric.sdk.android.services.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:30)
    20  java.lang.Thread.run(Thread.java:856)
    
    Thread 5918:
    0   java.lang.BootClassLoader.getInstance(ClassLoader.java:752)
    1   java.lang.ClassLoader.findLoadedClass(ClassLoader.java:350)
    2   java.lang.ClassLoader.loadClass(ClassLoader.java:491)
    3   java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    4   dalvik.system.DexFile.defineClass(DexFile.java:-2)
    5   dalvik.system.DexFile.loadClassBinaryName(DexFile.java:211)
    6   dalvik.system.DexPathList.findClass(DexPathList.java:305)
    7   dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:62)
    8   java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    9   java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    10  dalvik.system.DexFile.defineClass(DexFile.java:-2)
    11  dalvik.system.DexFile.loadClassBinaryName(DexFile.java:211)
    12  dalvik.system.DexPathList.findClass(DexPathList.java:305)
    13  dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:62)
    14  java.lang.ClassLoader.loadClass(ClassLoader.java:501)
    15  java.lang.ClassLoader.loadClass(ClassLoader.java:495)
    16  java.lang.ClassLoader.loadClass(ClassLoader.java:461)
    17  java.lang.Class.newInstanceImpl(Class.java:-2)
    18  java.lang.Class.newInstance(Class.java:1319)
    19  com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.doMakeLoader(DynamicLoaderFactory.java:225)
    20  com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory.access$000(DynamicLoaderFactory.java:44)
    21  com.facebook.ads.internal.dynamicloading.DynamicLoaderFactory$1.run(DynamicLoaderFactory.java:101)
    22  java.lang.Thread.run(Thread.java:856)
    
    Thread 5919:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:125)
    2   android.os.Looper.loop(Looper.java:124)
    3   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5920:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:364)
    2   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 5921:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:125)
    2   android.os.Looper.loop(Looper.java:124)
    3   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5922:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   com.yandex.metrica.impl.ob.dr$1.run(SourceFile:93)
    7   java.lang.Thread.run(Thread.java:856)
    
    Thread 5923:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.ce$b.c(SourceFile:141)
    2   com.yandex.metrica.impl.ob.ce$b.b(SourceFile:123)
    3   com.yandex.metrica.impl.ob.ce$b.a(SourceFile:101)
    4   com.yandex.metrica.impl.ob.ce$b.call(SourceFile:83)
    5   java.util.concurrent.FutureTask.run(FutureTask.java:234)
    6   android.os.Handler.handleCallback(Handler.java:725)
    7   android.os.Handler.dispatchMessage(Handler.java:92)
    8   android.os.Looper.loop(Looper.java:137)
    9   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5925:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1063)
    6   java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:780)
    7   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    8   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    9   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    10  com.google.android.gms.common.util.concurrent.zza.run
    11  java.lang.Thread.run(Thread.java:856)
    
    Thread 5926:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:125)
    2   android.os.Looper.loop(Looper.java:124)
    3   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5929:
    0   dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
    1   java.lang.Thread.getStackTrace(Thread.java:591)
    2   java.lang.Thread.getAllStackTraces(Thread.java:528)
    3   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1146)
    4   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1111)
    5   com.microsoft.appcenter.crashes.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.java:20)
    6   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
    7   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
    
    Thread 5930:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:125)
    2   android.os.Looper.loop(Looper.java:124)
    3   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5931:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:125)
    2   android.os.Looper.loop(Looper.java:124)
    3   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5934:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:125)
    2   android.os.Looper.loop(Looper.java:124)
    3   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5935:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   com.google.android.gms.common.util.concurrent.zza.run
    10  java.lang.Thread.run(Thread.java:856)
    
    Thread 5940:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:125)
    2   android.os.Looper.loop(Looper.java:124)
    3   android.os.HandlerThread.run(HandlerThread.java:60)
    
    Thread 5943:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   com.google.android.gms.common.util.concurrent.zza.run
    10  java.lang.Thread.run(Thread.java:856)
    
    Thread 5946:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2019)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   java.lang.Thread.run(Thread.java:856)
    
    Thread 5948:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1009)
    5   java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1302)
    6   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:248)
    7   com.google.android.gms.tasks.Tasks$zza.await
    8   com.google.android.gms.tasks.Tasks.await
    9   com.google.firebase.iid.FirebaseInstanceId.zza(com.google.firebase:firebase-iid@@20.1.4:98)
    10  com.google.firebase.iid.FirebaseInstanceId.getToken(com.google.firebase:firebase-iid@@20.1.4:94)
    11  com.onesignal.PushRegistratorFCM.getToken(PushRegistratorFCM.java:95)
    12  com.onesignal.PushRegistratorAbstractGoogle.attemptRegistration(PushRegistratorAbstractGoogle.java:97)
    13  com.onesignal.PushRegistratorAbstractGoogle.access$100(PushRegistratorAbstractGoogle.java:37)
    14  com.onesignal.PushRegistratorAbstractGoogle$1.run(PushRegistratorAbstractGoogle.java:84)
    15  java.lang.Thread.run(Thread.java:856)
    
    Thread 5949:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   com.google.android.gms.common.util.concurrent.zza.run
    10  java.lang.Thread.run(Thread.java:856)
    
    Thread 5950:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   com.google.android.gms.common.util.concurrent.zza.run
    10  java.lang.Thread.run(Thread.java:856)
    
    Thread 5952:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   java.lang.Thread.run(Thread.java:856)
    
    Thread 5953:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:199)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2058)
    5   java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:438)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1013)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1073)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    9   java.lang.Thread.run(Thread.java:856)
    
    Thread 5954:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor(Thread.java:1231)
    2   sun.misc.Unsafe.park(Unsafe.java:323)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:159)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810)
    5   java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:970)
    6   java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1279)
    7   java.util.concurrent.CountDownLatch.await(CountDownLatch.java:202)
    8   com.google.android.gms.tasks.Tasks$zza.await
    9   com.google.android.gms.tasks.Tasks.await
    10  com.google.firebase.iid.zzau.zza(com.google.firebase:firebase-iid@@20.1.4:82)
    11  com.google.firebase.iid.zzt.zza(com.google.firebase:firebase-iid@@20.1.4:73)
    12  com.google.firebase.iid.zzs.run(com.google.firebase:firebase-iid@@20.1.4:-1)
    13  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    14  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    15  com.google.android.gms.common.util.concurrent.zza.run
    16  java.lang.Thread.run(Thread.java:856)
    
    Thread 5957:
    0   android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:1031)
    2   android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
    3   android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
    4   android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:143)
    5   android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133)
    6   android.database.AbstractCursor.moveToPosition(AbstractCursor.java:197)
    7   android.database.AbstractCursor.moveToNext(AbstractCursor.java:245)
    8   ru.childfeed.app.services.DatabaseService.selectAllReceipts(DatabaseService.java:37)
    9   ru.childfeed.app.services.SynchronizationService.loadCachedData(SynchronizationService.java:151)
    10  ru.childfeed.app.services.SynchronizationService.onHandleWork(SynchronizationService.java:140)
    11  androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:392)
    12  androidx.core.app.JobIntentService$CommandProcessor.doInBackground(JobIntentService.java:383)
    13  android.os.AsyncTask$2.call(AsyncTask.java:287)
    14  java.util.concurrent.FutureTask.run(FutureTask.java:234)
    15  java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    16  java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    17  java.lang.Thread.run(Thread.java:856)
    

    2. Xiaomi Mi Max 2 (Android 7.1.1)

    Android: 7.1.1
    Android Build: NMF26F
    Manufacturer: Xiaomi
    Model: MI MAX 2
    Start Date: 2020-04-06T13:42:55.731Z
    Date: 2020-04-06T13:42:58.547Z
    
    android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java:-2)
      at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
      at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:634)
      at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:320)
      at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:294)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
      at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
      at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
      at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
      at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
      at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:689)
      at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
      at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries(OneSignalDbHelper.java:137)
      at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:26)
      at java.lang.Thread.run(Thread.java:760)
    
    Thread 9993:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:152)
    2   java.lang.Thread.run(Thread.java:760)
    
    Thread 9994:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:407)
    2   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
    3   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
    4   java.lang.Daemons$FinalizerDaemon.run(Daemons.java:206)
    5   java.lang.Thread.run(Thread.java:760)
    
    Thread 9995:
    0   java.lang.Thread.sleep(Thread.java:-2)
    1   java.lang.Thread.sleep(Thread.java:370)
    2   java.lang.Thread.sleep(Thread.java:312)
    3   java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:316)
    4   java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:338)
    5   java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:255)
    6   java.lang.Thread.run(Thread.java:760)
    
    Thread 9996:
    0   dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java:-2)
    1   java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:435)
    2   java.lang.Thread.run(Thread.java:760)
    
    Thread 9999:
    0   android.os.FileObserver$ObserverThread.observe(FileObserver.java:-2)
    1   android.os.FileObserver$ObserverThread.run(FileObserver.java:86)
    
    Thread 10003:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10004:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 10005:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10006:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   com.yandex.metrica.impl.ob.dr$1.run(SourceFile:93)
    7   java.lang.Thread.run(Thread.java:760)
    
    Thread 10007:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10009:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10012:
    0   dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
    1   java.lang.Thread.getStackTrace(Thread.java:1565)
    2   java.lang.Thread.getAllStackTraces(Thread.java:1615)
    3   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1146)
    4   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1111)
    5   com.microsoft.appcenter.crashes.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.java:20)
    6   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
    7   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
    8   java.lang.Thread.dispatchUncaughtException(Thread.java:1979)
    
    Thread 10013:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10014:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10016:
    0   android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
    2   android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:634)
    3   android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:320)
    4   android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:294)
    5   android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
    6   android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
    7   android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
    8   android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
    9   android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
    10  android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
    11  android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
    12  android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
    13  android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:689)
    14  android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
    15  android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
    16  android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
    17  com.onesignal.OneSignalDbHelper.getReadableDbWithRetries(OneSignalDbHelper.java:150)
    18  com.onesignal.OutcomeEventsCache.getAllEventsToSend(OutcomeEventsCache.java:77)
    19  com.onesignal.OutcomeEventsRepository.getSavedOutcomeEvents(OutcomeEventsRepository.java:29)
    20  com.onesignal.OutcomeEventsController$1.run(OutcomeEventsController.java:72)
    21  java.lang.Thread.run(Thread.java:760)
    
    Thread 10017:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10020:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    9   java.lang.Thread.run(Thread.java:760)
    
    Thread 10021:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 10022:
    0   android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:782)
    2   android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
    3   android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
    4   android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1474)
    5   com.yandex.metrica.impl.ob.kx.a(SourceFile:43)
    6   com.yandex.metrica.impl.ob.mg.a(SourceFile:40)
    7   com.yandex.metrica.impl.ob.ul.a(SourceFile:291)
    8   com.yandex.metrica.impl.ob.ul.d(SourceFile:402)
    9   com.yandex.metrica.impl.ob.ul.a(SourceFile:162)
    10  com.yandex.metrica.impl.ob.ul.<init>(SourceFile:130)
    11  com.yandex.metrica.impl.ob.ul.<init>(SourceFile:102)
    12  com.yandex.metrica.impl.ob.ul.<init>(SourceFile:84)
    13  com.yandex.metrica.impl.ob.ul.<init>(SourceFile:68)
    14  com.yandex.metrica.impl.ob.uc.b(SourceFile:105)
    15  com.yandex.metrica.impl.ob.uc.a(SourceFile:87)
    16  com.yandex.metrica.impl.ob.uc.a(SourceFile:124)
    17  com.yandex.metrica.impl.ob.ei.<init>(SourceFile:121)
    18  com.yandex.metrica.impl.ob.ei.<init>(SourceFile:90)
    19  com.yandex.metrica.impl.ob.ej.a(SourceFile:42)
    20  com.yandex.metrica.impl.ob.ej.b(SourceFile:18)
    21  com.yandex.metrica.impl.ob.fu.a(SourceFile:71)
    22  com.yandex.metrica.impl.ob.fu.b(SourceFile:61)
    23  com.yandex.metrica.impl.ob.fx.b(SourceFile:28)
    24  com.yandex.metrica.impl.ob.fx.a(SourceFile:20)
    25  com.yandex.metrica.impl.ob.fo.a(SourceFile:63)
    26  com.yandex.metrica.impl.ob.be$a.run(SourceFile:452)
    27  android.os.Handler.handleCallback(Handler.java:754)
    28  android.os.Handler.dispatchMessage(Handler.java:95)
    29  android.os.Looper.loop(Looper.java:163)
    30  android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10023:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10024:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10025:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10026:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10027:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10028:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10029:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 10030:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    

    3. Xiaomi Redmi 4X (Android 7.1.2)

    Android: 7.1.2
    Android Build: N2G47H
    Manufacturer: Xiaomi
    Model: Redmi 4X
    Start Date: 2020-04-06T06:02:59.376Z
    Date: 2020-04-06T06:03:03.198Z
    
    android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5)
      at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(SQLiteConnection.java:-2)
      at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:734)
      at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754)
      at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)
      at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1502)
      at com.onesignal.OneSignalCacheCleaner.cleanOldNotificationData(OneSignalCacheCleaner.java:56)
      at com.onesignal.OneSignalCacheCleaner.cleanNotificationCache(OneSignalCacheCleaner.java:48)
      at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:29)
      at java.lang.Thread.run(Thread.java:760)
    
    Thread 3614:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:152)
    2   java.lang.Thread.run(Thread.java:760)
    
    Thread 3615:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:407)
    2   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
    3   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
    4   java.lang.Daemons$FinalizerDaemon.run(Daemons.java:206)
    5   java.lang.Thread.run(Thread.java:760)
    
    Thread 3616:
    0   java.lang.Thread.sleep(Thread.java:-2)
    1   java.lang.Thread.sleep(Thread.java:370)
    2   java.lang.Thread.sleep(Thread.java:312)
    3   java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:316)
    4   java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:338)
    5   java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:255)
    6   java.lang.Thread.run(Thread.java:760)
    
    Thread 3617:
    0   dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java:-2)
    1   java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:435)
    2   java.lang.Thread.run(Thread.java:760)
    
    Thread 3620:
    0   android.os.FileObserver$ObserverThread.observe(FileObserver.java:-2)
    1   android.os.FileObserver$ObserverThread.run(FileObserver.java:86)
    
    Thread 3625:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3626:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 3627:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3628:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   com.yandex.metrica.impl.ob.dr$1.run(SourceFile:93)
    7   java.lang.Thread.run(Thread.java:760)
    
    Thread 3629:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3631:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3634:
    0   dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
    1   java.lang.Thread.getStackTrace(Thread.java:1565)
    2   java.lang.Thread.getAllStackTraces(Thread.java:1615)
    3   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1146)
    4   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1111)
    5   com.microsoft.appcenter.crashes.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.java:20)
    6   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
    7   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
    8   java.lang.Thread.dispatchUncaughtException(Thread.java:1979)
    
    Thread 3635:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3636:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3638:
    0   android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:845)
    2   android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
    3   android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
    4   android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:145)
    5   android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:134)
    6   android.database.AbstractCursor.moveToPosition(AbstractCursor.java:219)
    7   android.database.AbstractCursor.moveToFirst(AbstractCursor.java:264)
    8   com.onesignal.OutcomeEventsCache.getAllEventsToSend(OutcomeEventsCache.java:88)
    9   com.onesignal.OutcomeEventsRepository.getSavedOutcomeEvents(OutcomeEventsRepository.java:29)
    10  com.onesignal.OutcomeEventsController$1.run(OutcomeEventsController.java:72)
    11  java.lang.Thread.run(Thread.java:760)
    
    Thread 3639:
    0   java.util.concurrent.locks.AbstractQueuedSynchronizer.doReleaseShared(AbstractQueuedSynchronizer.java:687)
    1   java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1342)
    2   java.util.concurrent.CountDownLatch.countDown(CountDownLatch.java:263)
    3   com.microsoft.appcenter.utils.async.DefaultAppCenterFuture.complete(DefaultAppCenterFuture.java:85)
    4   com.microsoft.appcenter.AbstractAppCenterService$1.run(AbstractAppCenterService.java:85)
    5   com.microsoft.appcenter.AbstractAppCenterService$6.run(AbstractAppCenterService.java:338)
    6   com.microsoft.appcenter.AbstractAppCenterService$4.run(AbstractAppCenterService.java:304)
    7   com.microsoft.appcenter.AppCenter$7.run(AppCenter.java:749)
    8   android.os.Handler.handleCallback(Handler.java:754)
    9   android.os.Handler.dispatchMessage(Handler.java:95)
    10  android.os.Looper.loop(Looper.java:163)
    11  android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3641:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    9   java.lang.Thread.run(Thread.java:760)
    
    Thread 3642:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3643:
    0   android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:555)
    2   android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:437)
    3   android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:401)
    4   android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:524)
    5   com.yandex.metrica.impl.ob.cx.a(SourceFile:211)
    6   com.yandex.metrica.impl.ob.lf.a(SourceFile:220)
    7   com.yandex.metrica.impl.ob.lf.a(SourceFile:192)
    8   com.yandex.metrica.impl.ob.lf.a(SourceFile:36)
    9   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:93)
    
    Thread 3644:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:201)
    4   android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:670)
    5   android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:348)
    6   android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:894)
    7   android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:586)
    8   android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
    9   android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
    10  android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
    11  android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1318)
    12  android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1165)
    13  android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1036)
    14  android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1204)
    15  com.yandex.metrica.impl.ob.kx.a(SourceFile:58)
    16  com.yandex.metrica.impl.ob.mg.a(SourceFile:46)
    17  com.yandex.metrica.impl.ob.ul.<init>(SourceFile:90)
    18  com.yandex.metrica.impl.ob.ul.<init>(SourceFile:68)
    19  com.yandex.metrica.impl.ob.uc.b(SourceFile:105)
    20  com.yandex.metrica.impl.ob.uc.a(SourceFile:87)
    21  com.yandex.metrica.impl.ob.uc.a(SourceFile:124)
    22  com.yandex.metrica.impl.ob.ei.<init>(SourceFile:121)
    23  com.yandex.metrica.impl.ob.ei.<init>(SourceFile:90)
    24  com.yandex.metrica.impl.ob.ej.a(SourceFile:42)
    25  com.yandex.metrica.impl.ob.ej.b(SourceFile:18)
    26  com.yandex.metrica.impl.ob.fu.a(SourceFile:71)
    27  com.yandex.metrica.impl.ob.fu.b(SourceFile:61)
    28  com.yandex.metrica.impl.ob.fx.b(SourceFile:28)
    29  com.yandex.metrica.impl.ob.fx.a(SourceFile:20)
    30  com.yandex.metrica.impl.ob.fo.a(SourceFile:63)
    31  com.yandex.metrica.impl.ob.be$a.run(SourceFile:452)
    32  android.os.Handler.handleCallback(Handler.java:754)
    33  android.os.Handler.dispatchMessage(Handler.java:95)
    34  android.os.Looper.loop(Looper.java:163)
    35  android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3645:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3646:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3648:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3650:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3651:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3652:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3653:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    


    4. Samsung Galaxy A5/A7 (Android 8.0.0)

    Android: 8.0.0
    Android Build: R16NW
    Manufacturer: samsung
    Model: SM-A720F
    Start Date: 2020-04-08T09:48:45.077Z
    Date: 2020-04-08T09:48:48.174Z
    
    android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
    #################################################################
    Error Code : 5 (SQLITE_BUSY)
    Caused By : The database file is locked.
        (database is locked (code 5): , while compiling: PRAGMA journal_mode)
    #################################################################
      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java:-2)
      at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1096)
      at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:800)
      at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:449)
      at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:423)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:272)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205)
      at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:649)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:255)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:222)
      at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:1191)
      at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:1146)
      at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:861)
      at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:729)
      at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:310)
      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:194)
      at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries(OneSignalDbHelper.java:137)
      at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:26)
      at java.lang.Thread.run(Thread.java:764)
    
    Thread 2:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.app.ActivityThread.main(ActivityThread.java:6944)
    4   java.lang.reflect.Method.invoke(Method.java:-2)
    5   com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
    6   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
    
    Thread 73462:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
    2   java.lang.Daemons$Daemon.run(Daemons.java:103)
    3   java.lang.Thread.run(Thread.java:764)
    
    Thread 73463:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:422)
    2   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
    3   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
    4   java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
    5   java.lang.Daemons$Daemon.run(Daemons.java:103)
    6   java.lang.Thread.run(Thread.java:764)
    
    Thread 73464:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Daemons$FinalizerWatchdogDaemon.sleepUntilNeeded(Daemons.java:297)
    2   java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:277)
    3   java.lang.Daemons$Daemon.run(Daemons.java:103)
    4   java.lang.Thread.run(Thread.java:764)
    
    Thread 73470:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73471:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 73472:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73473:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    6   com.yandex.metrica.impl.ob.dr$1.run(SourceFile:93)
    7   java.lang.Thread.run(Thread.java:764)
    
    Thread 73474:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73476:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73479:
    0   dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
    1   java.lang.Thread.getStackTrace(Thread.java:1536)
    2   java.lang.Thread.getAllStackTraces(Thread.java:1586)
    3   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1146)
    4   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1111)
    5   com.microsoft.appcenter.crashes.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.java:20)
    6   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
    7   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
    8   java.lang.Thread.dispatchUncaughtException(Thread.java:1953)
    
    Thread 73480:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73481:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73483:
    0   android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:1096)
    2   android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:800)
    3   android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:449)
    4   android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:423)
    5   android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:272)
    6   android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:205)
    7   android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:649)
    8   android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:255)
    9   android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:222)
    10  android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:1191)
    11  android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:1146)
    12  android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:861)
    13  android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:729)
    14  android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:310)
    15  android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
    16  android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:218)
    17  com.onesignal.OneSignalDbHelper.getReadableDbWithRetries(OneSignalDbHelper.java:150)
    18  com.onesignal.OutcomeEventsCache.getAllEventsToSend(OutcomeEventsCache.java:77)
    19  com.onesignal.OutcomeEventsRepository.getSavedOutcomeEvents(OutcomeEventsRepository.java:29)
    20  com.onesignal.OutcomeEventsController$1.run(OutcomeEventsController.java:72)
    21  java.lang.Thread.run(Thread.java:764)
    
    Thread 73484:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73486:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73487:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73488:
    0   android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:717)
    2   android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:437)
    3   android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:401)
    4   android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:683)
    5   com.yandex.metrica.impl.ob.cx.a(SourceFile:211)
    6   com.yandex.metrica.impl.ob.lf.a(SourceFile:220)
    7   com.yandex.metrica.impl.ob.lf.a(SourceFile:192)
    8   com.yandex.metrica.impl.ob.lf.a(SourceFile:36)
    9   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:93)
    
    Thread 73489:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:868)
    5   java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:900)
    6   java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1223)
    7   java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(ReentrantReadWriteLock.java:950)
    8   com.yandex.metrica.impl.ob.kz.c(SourceFile:480)
    9   com.yandex.metrica.impl.ob.kz.a(SourceFile:226)
    10  com.yandex.metrica.impl.ob.kz.a(SourceFile:175)
    11  com.yandex.metrica.impl.ob.it.b(SourceFile:73)
    12  com.yandex.metrica.impl.ob.it.a(SourceFile:59)
    13  com.yandex.metrica.impl.ob.it.a(SourceFile:22)
    14  com.yandex.metrica.impl.ob.jd.i(SourceFile:231)
    15  com.yandex.metrica.impl.ob.jd.c(SourceFile:115)
    16  com.yandex.metrica.impl.ob.jd.d(SourceFile:122)
    17  com.yandex.metrica.impl.ob.ff.e(SourceFile:120)
    18  com.yandex.metrica.impl.ob.ho.a(SourceFile:24)
    19  com.yandex.metrica.impl.ob.gs$1.a(SourceFile:27)
    20  com.yandex.metrica.impl.ob.gs$1.a(SourceFile:24)
    21  com.yandex.metrica.impl.ob.gl.a(SourceFile:36)
    22  com.yandex.metrica.impl.ob.gs.b(SourceFile:24)
    23  com.yandex.metrica.impl.ob.en.a(SourceFile:231)
    24  com.yandex.metrica.impl.ob.fc.a(SourceFile:112)
    25  com.yandex.metrica.impl.ob.fy.b(SourceFile:36)
    26  com.yandex.metrica.impl.ob.fl.a(SourceFile:51)
    27  com.yandex.metrica.impl.ob.be$a.run(SourceFile:454)
    28  android.os.Handler.handleCallback(Handler.java:789)
    29  android.os.Handler.dispatchMessage(Handler.java:98)
    30  android.os.Looper.loop(Looper.java:164)
    31  android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73490:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73491:
    0   android.os.FileObserver$ObserverThread.observe(FileObserver.java:-2)
    1   android.os.FileObserver$ObserverThread.run(FileObserver.java:86)
    
    Thread 73492:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73493:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
    4   android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:879)
    5   android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:534)
    6   android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:904)
    7   android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:786)
    8   android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
    9   android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1904)
    10  android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1771)
    11  com.yandex.metrica.impl.ob.kw.b(SourceFile:138)
    12  com.yandex.metrica.impl.ob.om.a(SourceFile:37)
    13  com.yandex.metrica.impl.ob.ol.d(SourceFile:140)
    14  com.yandex.metrica.impl.ob.ot.a(SourceFile:97)
    15  com.yandex.metrica.impl.ob.oo$1.run(SourceFile:137)
    16  android.os.Handler.handleCallback(Handler.java:789)
    17  android.os.Handler.dispatchMessage(Handler.java:98)
    18  android.os.Looper.loop(Looper.java:164)
    19  android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73496:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73497:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73500:
    0   libcore.io.Linux.android_getaddrinfo(Linux.java:-2)
    1   libcore.io.ForwardingOs.android_getaddrinfo(ForwardingOs.java:58)
    2   java.net.Inet6AddressImpl.lookupHostByName(Inet6AddressImpl.java:122)
    3   java.net.Inet6AddressImpl.lookupAllHostAddr(Inet6AddressImpl.java:90)
    4   java.net.InetAddress.getAllByName(InetAddress.java:787)
    5   com.android.okhttp.Dns$1.lookup(Dns.java:39)
    6   com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:200)
    7   com.android.okhttp.internal.http.RouteSelector.nextProxy(RouteSelector.java:148)
    8   com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:90)
    9   com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:190)
    10  com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:142)
    11  com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:104)
    12  com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:410)
    13  com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:343)
    14  com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:489)
    15  com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:435)
    16  com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:566)
    17  com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
    18  com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode
    19  com.yandex.metrica.impl.ob.bq.a(SourceFile:57)
    20  com.yandex.metrica.impl.ob.br.a(SourceFile:91)
    21  com.yandex.metrica.impl.ob.br.run(SourceFile:75)
    22  com.yandex.metrica.impl.ob.xd.execute(SourceFile:18)
    23  com.yandex.metrica.impl.ob.xp.execute(SourceFile:15)
    24  com.yandex.metrica.impl.ob.bl.run(SourceFile:100)
    
    Thread 73501:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    
    Thread 73502:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73503:
    0   libcore.io.Linux.poll(Linux.java:-2)
    1   libcore.io.BlockGuardOs.poll(BlockGuardOs.java:216)
    2   android.system.Os.poll(Os.java:370)
    3   libcore.io.IoBridge.poll(IoBridge.java:689)
    4   java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:181)
    5   java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:416)
    6   java.net.ServerSocket.implAccept(ServerSocket.java:547)
    7   java.net.ServerSocket.accept(ServerSocket.java:515)
    8   com.yandex.metrica.impl.ob.ts.run(SourceFile:309)
    9   java.lang.Thread.run(Thread.java:764)
    
    Thread 73504:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 73505:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:325)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 73506:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.kz$a.run(SourceFile:671)
    
    Thread 73507:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    
    Thread 73508:
    0   android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:717)
    2   android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:437)
    3   android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:401)
    4   android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:683)
    5   com.yandex.metrica.impl.ob.cx.a(SourceFile:211)
    6   com.yandex.metrica.impl.ob.lf.a(SourceFile:220)
    7   com.yandex.metrica.impl.ob.lf.a(SourceFile:192)
    8   com.yandex.metrica.impl.ob.lf.a(SourceFile:36)
    9   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:93)
    
    Thread 73509:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
    4   android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:879)
    5   android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:534)
    6   android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:904)
    7   android.database.sqlite.SQLiteSession.beginTransactionUnchecked(SQLiteSession.java:310)
    8   android.database.sqlite.SQLiteSession.beginTransaction(SQLiteSession.java:298)
    9   android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:663)
    10  android.database.sqlite.SQLiteDatabase.beginTransaction(SQLiteDatabase.java:574)
    11  com.yandex.metrica.impl.ob.kz.a(SourceFile:506)
    12  com.yandex.metrica.impl.ob.kz$a.run(SourceFile:683)
    


    5. Sony Xperia X (Android 8.0.0)

    Android: 8.0.0
    Android Build: 34.4.A.2.118
    Manufacturer: Sony
    Model: F5122
    Start Date: 2020-04-08T10:49:00.582Z
    Date: 2020-04-08T10:49:05.508Z
    
    android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java:-2)
      at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:895)
      at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:640)
      at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:326)
      at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:300)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:221)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:199)
      at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
      at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
      at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
      at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
      at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:730)
      at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:194)
      at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries(OneSignalDbHelper.java:137)
      at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:26)
      at java.lang.Thread.run(Thread.java:764)
    
    Thread 2:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.app.ActivityThread.main(ActivityThread.java:6589)
    4   java.lang.reflect.Method.invoke(Method.java:-2)
    5   com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
    6   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
    
    Thread 1406:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Daemons$ReferenceQueueDaemon.runInternal(Daemons.java:178)
    2   java.lang.Daemons$Daemon.run(Daemons.java:103)
    3   java.lang.Thread.run(Thread.java:764)
    
    Thread 1407:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:422)
    2   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
    3   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
    4   java.lang.Daemons$FinalizerDaemon.runInternal(Daemons.java:232)
    5   java.lang.Daemons$Daemon.run(Daemons.java:103)
    6   java.lang.Thread.run(Thread.java:764)
    
    Thread 1408:
    0   java.lang.Thread.sleep(Thread.java:-2)
    1   java.lang.Thread.sleep(Thread.java:373)
    2   java.lang.Thread.sleep(Thread.java:314)
    3   java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:342)
    4   java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:364)
    5   java.lang.Daemons$FinalizerWatchdogDaemon.runInternal(Daemons.java:281)
    6   java.lang.Daemons$Daemon.run(Daemons.java:103)
    7   java.lang.Thread.run(Thread.java:764)
    
    Thread 1414:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1415:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 1416:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1417:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    6   com.yandex.metrica.impl.ob.dr$1.run(SourceFile:93)
    7   java.lang.Thread.run(Thread.java:764)
    
    Thread 1418:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1420:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1423:
    0   dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
    1   java.lang.Thread.getStackTrace(Thread.java:1536)
    2   java.lang.Thread.getAllStackTraces(Thread.java:1586)
    3   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1146)
    4   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1111)
    5   com.microsoft.appcenter.crashes.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.java:20)
    6   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
    7   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
    8   java.lang.Thread.dispatchUncaughtException(Thread.java:1953)
    
    Thread 1424:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1425:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1428:
    0   android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:851)
    2   android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
    3   android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
    4   android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:143)
    5   android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132)
    6   android.database.AbstractCursor.moveToPosition(AbstractCursor.java:219)
    7   android.database.AbstractCursor.moveToNext(AbstractCursor.java:268)
    8   com.microsoft.appcenter.utils.storage.DatabaseManager.nextValues(DatabaseManager.java:164)
    9   com.microsoft.appcenter.persistence.DatabasePersistence.getLogs(DatabasePersistence.java:441)
    10  com.microsoft.appcenter.channel.DefaultChannel.triggerIngestion(DefaultChannel.java:476)
    11  com.microsoft.appcenter.channel.DefaultChannel.access$500(DefaultChannel.java:51)
    12  com.microsoft.appcenter.channel.DefaultChannel$GroupState$1.run(DefaultChannel.java:893)
    13  android.os.Handler.handleCallback(Handler.java:789)
    14  android.os.Handler.dispatchMessage(Handler.java:98)
    15  android.os.Looper.loop(Looper.java:251)
    16  android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1430:
    0   android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java:-2)
    1   android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:561)
    2   android.database.sqlite.SQLiteSession.endTransactionUnchecked(SQLiteSession.java:437)
    3   android.database.sqlite.SQLiteSession.endTransaction(SQLiteSession.java:401)
    4   android.database.sqlite.SQLiteDatabase.endTransaction(SQLiteDatabase.java:524)
    5   com.yandex.metrica.impl.ob.cx.a(SourceFile:211)
    6   com.yandex.metrica.impl.ob.lf.a(SourceFile:220)
    7   com.yandex.metrica.impl.ob.lf.a(SourceFile:192)
    8   com.yandex.metrica.impl.ob.lf.a(SourceFile:36)
    9   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:93)
    
    Thread 1431:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1432:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1433:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1434:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1435:
    0   android.os.FileObserver$ObserverThread.observe(FileObserver.java:-2)
    1   android.os.FileObserver$ObserverThread.run(FileObserver.java:86)
    
    Thread 1436:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1438:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
    4   android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:670)
    5   android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:348)
    6   android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:894)
    7   android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:786)
    8   android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
    9   android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1474)
    10  android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1343)
    11  com.yandex.metrica.impl.ob.kw.b(SourceFile:138)
    12  com.yandex.metrica.impl.ob.om.a(SourceFile:37)
    13  com.yandex.metrica.impl.ob.ol.d(SourceFile:140)
    14  com.yandex.metrica.impl.ob.ot.a(SourceFile:97)
    15  com.yandex.metrica.impl.ob.oo$1.run(SourceFile:137)
    16  android.os.Handler.handleCallback(Handler.java:789)
    17  android.os.Handler.dispatchMessage(Handler.java:98)
    18  android.os.Looper.loop(Looper.java:251)
    19  android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1440:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1441:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1443:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    
    Thread 1444:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    
    Thread 1445:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:230)
    4   android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:670)
    5   android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:348)
    6   android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:894)
    7   android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:834)
    8   android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
    9   android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:143)
    10  android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132)
    11  com.yandex.metrica.impl.ob.kx.a(SourceFile:62)
    12  com.yandex.metrica.impl.ob.mg.a(SourceFile:46)
    13  com.yandex.metrica.impl.ob.jv$a.a(SourceFile:33)
    14  com.yandex.metrica.impl.ob.jv.a(SourceFile:62)
    15  com.yandex.metrica.impl.ob.ka.a(SourceFile:41)
    16  com.yandex.metrica.impl.ob.jr$a.run(SourceFile:56)
    17  android.os.Handler.handleCallback(Handler.java:789)
    18  android.os.Handler.dispatchMessage(Handler.java:98)
    19  android.os.Looper.loop(Looper.java:251)
    20  android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1446:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 1447:
    0   libcore.io.Linux.poll(Linux.java:-2)
    1   libcore.io.BlockGuardOs.poll(BlockGuardOs.java:216)
    2   android.system.Os.poll(Os.java:370)
    3   libcore.io.IoBridge.poll(IoBridge.java:689)
    4   java.net.PlainSocketImpl.socketAccept(PlainSocketImpl.java:181)
    5   java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:416)
    6   java.net.ServerSocket.implAccept(ServerSocket.java:547)
    7   java.net.ServerSocket.accept(ServerSocket.java:515)
    8   com.yandex.metrica.impl.ob.ts.run(SourceFile:309)
    9   java.lang.Thread.run(Thread.java:764)
    
    Thread 1448:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:375)
    2   android.os.Looper.loop(Looper.java:225)
    3   android.os.HandlerThread.run(HandlerThread.java:65)
    
    Thread 1449:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.kz$a.run(SourceFile:671)
    
    Thread 1450:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2135)
    2   sun.misc.Unsafe.park(Unsafe.java:358)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    
    Thread 1451:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 1452:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.kz$a.run(SourceFile:671)
    

    Medium Priority

    All 23 comments

    @Ustimov Thanks for reporting with all these detail and collapsible sections, it is much appreciated!

    We have fixed the issue in PR #995 with the help of these details and was just released today in our 3.12.2 release

    It Has occurred in sdk 3.13.2 : com.onesignal.OneSignalDbHelper.getWritableDbWithRetries(OneSignalDbHelper.java:137)
    ::
    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
    at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:634)
    at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:320)
    at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:294)
    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
    at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
    at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
    at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
    at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1155)
    at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:268)
    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
    at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries(OneSignalDbHelper.java:137)
    at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:26)
    at java.lang.Thread.run(Thread.java:818)

    Same here. Now it's better, but still there are crashes on open or create:

    Android: 7.1.2
    Android Build: N2G47H
    Manufacturer: Xiaomi
    Model: Redmi 4A
    Start Date: 2020-05-01T10:45:34.484Z
    Date: 2020-05-01T10:45:39.076Z
    
    android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
      at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java:-2)
      at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
      at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:634)
      at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:320)
      at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:294)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
      at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
      at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
      at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
      at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
      at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
      at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
      at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:689)
      at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:299)
      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
      at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries(OneSignalDbHelper.java:137)
      at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:26)
      at java.lang.Thread.run(Thread.java:760)
    
    Thread 3726:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Daemons$ReferenceQueueDaemon.run(Daemons.java:150)
    2   java.lang.Thread.run(Thread.java:760)
    
    Thread 3727:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Object.wait(Object.java:407)
    2   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:188)
    3   java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:209)
    4   java.lang.Daemons$FinalizerDaemon.run(Daemons.java:204)
    5   java.lang.Thread.run(Thread.java:760)
    
    Thread 3728:
    0   java.lang.Thread.sleep(Thread.java:-2)
    1   java.lang.Thread.sleep(Thread.java:370)
    2   java.lang.Thread.sleep(Thread.java:312)
    3   java.lang.Daemons$FinalizerWatchdogDaemon.sleepFor(Daemons.java:314)
    4   java.lang.Daemons$FinalizerWatchdogDaemon.waitForFinalization(Daemons.java:336)
    5   java.lang.Daemons$FinalizerWatchdogDaemon.run(Daemons.java:253)
    6   java.lang.Thread.run(Thread.java:760)
    
    Thread 3729:
    0   dalvik.system.VMRuntime.runHeapTasks(VMRuntime.java:-2)
    1   java.lang.Daemons$HeapTaskDaemon.run(Daemons.java:433)
    2   java.lang.Thread.run(Thread.java:760)
    
    Thread 3732:
    0   android.os.FileObserver$ObserverThread.observe(FileObserver.java:-2)
    1   android.os.FileObserver$ObserverThread.run(FileObserver.java:86)
    
    Thread 3737:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3738:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 3739:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3740:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   com.yandex.metrica.impl.ob.dr$1.run(SourceFile:93)
    7   java.lang.Thread.run(Thread.java:760)
    
    Thread 3741:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3743:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3746:
    0   dalvik.system.VMStack.getThreadStackTrace(VMStack.java:-2)
    1   java.lang.Thread.getStackTrace(Thread.java:1565)
    2   java.lang.Thread.getAllStackTraces(Thread.java:1615)
    3   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1137)
    4   com.microsoft.appcenter.crashes.Crashes.saveUncaughtException(Crashes.java:1102)
    5   com.microsoft.appcenter.crashes.UncaughtExceptionHandler.uncaughtException(UncaughtExceptionHandler.java:20)
    6   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1068)
    7   java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1063)
    8   java.lang.Thread.dispatchUncaughtException(Thread.java:1979)
    
    Thread 3747:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3748:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3751:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3754:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1058)
    7   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1118)
    8   java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    9   java.lang.Thread.run(Thread.java:760)
    
    Thread 3755:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3756:
    0   java.lang.Object.wait(Object.java:-2)
    1   com.yandex.metrica.impl.ob.lf$a.run(SourceFile:84)
    
    Thread 3757:
    0   com.yandex.metrica.impl.ob.ul.<init>(SourceFile:102)
    1   com.yandex.metrica.impl.ob.ul.<init>(SourceFile:84)
    2   com.yandex.metrica.impl.ob.ul.<init>(SourceFile:68)
    3   com.yandex.metrica.impl.ob.uc.b(SourceFile:105)
    4   com.yandex.metrica.impl.ob.uc.a(SourceFile:87)
    5   com.yandex.metrica.impl.ob.uc.a(SourceFile:124)
    6   com.yandex.metrica.impl.ob.ei.<init>(SourceFile:121)
    7   com.yandex.metrica.impl.ob.ei.<init>(SourceFile:90)
    8   com.yandex.metrica.impl.ob.ej.a(SourceFile:42)
    9   com.yandex.metrica.impl.ob.ej.b(SourceFile:18)
    10  com.yandex.metrica.impl.ob.fu.a(SourceFile:71)
    11  com.yandex.metrica.impl.ob.fu.b(SourceFile:61)
    12  com.yandex.metrica.impl.ob.fx.b(SourceFile:28)
    13  com.yandex.metrica.impl.ob.fx.a(SourceFile:20)
    14  com.yandex.metrica.impl.ob.fo.a(SourceFile:63)
    15  com.yandex.metrica.impl.ob.be$a.run(SourceFile:452)
    16  android.os.Handler.handleCallback(Handler.java:754)
    17  android.os.Handler.dispatchMessage(Handler.java:95)
    18  android.os.Looper.loop(Looper.java:163)
    19  android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3758:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3759:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3760:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3761:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3762:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3763:
    0   android.os.MessageQueue.nativePollOnce(MessageQueue.java:-2)
    1   android.os.MessageQueue.next(MessageQueue.java:323)
    2   android.os.Looper.loop(Looper.java:142)
    3   android.os.HandlerThread.run(HandlerThread.java:61)
    
    Thread 3764:
    0   java.lang.Object.wait(Object.java:-2)
    1   java.lang.Thread.parkFor$(Thread.java:2160)
    2   sun.misc.Unsafe.park(Unsafe.java:325)
    3   java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
    4   java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2035)
    5   java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:413)
    6   com.yandex.metrica.impl.ob.bl.run(SourceFile:96)
    

    In my case only on Xiaomi devices (Redmi 4A, Redmi Note 4 and Redmi 4X) and only on Android 7.0/7.1.2.

    @asadi110 & @Ustimov
    I see some consistency with both stacks point to our OneSignalCacheCleaner, will give this a look and try to narrow down why this is causing a DB lock. Thanks for reporting these after updating, very helpful!

    and another Exception in OneSignalCacheCleaner :
    OneSignalCacheCleaner.java line 56
    com.onesignal.OneSignalCacheCleaner.cleanOldNotificationData ::

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5 SQLITE_BUSY[5])
    at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(SQLiteConnection.java)
    at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:946)
    at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:754)
    at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)
    at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:2049)
    at com.onesignal.OneSignalCacheCleaner.cleanOldNotificationData(OneSignalCacheCleaner.java:56)
    at com.onesignal.OneSignalCacheCleaner.cleanNotificationCache(OneSignalCacheCleaner.java:48)
    at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:29)
    at java.lang.Thread.run(Thread.java:764)

    And another in Android 4.4.4
    OneSignalDbHelper.java line 150
    com.onesignal.OneSignalDbHelper.getReadableDbWithRetries :

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5)
    at android.database.sqlite.SQLiteConnection.nativeExecuteForLong(SQLiteConnection.java)
    at android.database.sqlite.SQLiteConnection.executeForLong(SQLiteConnection.java:798)
    at android.database.sqlite.SQLiteSession.executeForLong(SQLiteSession.java:652)
    at android.database.sqlite.SQLiteStatement.simpleQueryForLong(SQLiteStatement.java:107)
    at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:825)
    at android.database.DatabaseUtils.longForQuery(DatabaseUtils.java:813)
    at android.database.sqlite.SQLiteDatabase.getVersion(SQLiteDatabase.java:981)
    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:242)
    at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:188)
    at com.onesignal.OneSignalDbHelper.getReadableDbWithRetries(OneSignalDbHelper.java:150)
    at com.onesignal.OutcomeEventsCache.getAllEventsToSend(OutcomeEventsCache.java:76)
    at com.onesignal.OutcomeEventsRepository.getSavedOutcomeEvents(OutcomeEventsRepository.java:29)
    at com.onesignal.OutcomeEventsController$1.run(OutcomeEventsController.java:72)
    at java.lang.Thread.run(Thread.java:841)

    Thanks for the stacktraces here. This issue is fixed in the 3.13.2 Release

    Ongoing reports of this still being an issue

    Thanks @rgomezp

    The issue as described in this thread above still occurs for our app which has the latest release (2.12.2 in Unity which in turn has Android Native SDK 3.13.2).

    The good news is that since the update to 3.13.2, it appears that fewer devices are affected, so the update did at least have an effect. That said, it's still our top crash in our app so if you can help re-look at this, it would be very much be appreciated. Thanks!

    I attach crash reports from our Google Play console here:
    Screenshot 2020-05-28 17 17 36
    Screenshot 2020-05-28 17 17 56

    Pasted here the two reports as text:

    android.database.sqlite.SQLiteCantOpenDatabaseException: 
      at android.database.sqlite.SQLiteConnection.nativeOpen (Native Method)
      at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:209)
      at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:193)
      at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked (SQLiteConnectionPool.java:463)
      at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:185)
      at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:177)
      at android.database.sqlite.SQLiteDatabase.openInner (SQLiteDatabase.java:808)
      at android.database.sqlite.SQLiteDatabase.open (SQLiteDatabase.java:793)
      at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:696)
      at android.app.ContextImpl.openOrCreateDatabase (ContextImpl.java:726)
      at android.content.ContextWrapper.openOrCreateDatabase (ContextWrapper.java:299)
      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:254)
      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:194)
      at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries (OneSignalDbHelper.java:137)
      at com.onesignal.OneSignalCacheCleaner$1.run (OneSignalCacheCleaner.java:26)
      at java.lang.Thread.run (Thread.java:764)
    

    And the second report:

    android.database.sqlite.SQLiteException: 
      at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration (SQLiteConnection.java:391)
      at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:216)
      at android.database.sqlite.SQLiteConnection.open (SQLiteConnection.java:191)
      at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked (SQLiteConnectionPool.java:463)
      at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:185)
      at android.database.sqlite.SQLiteConnectionPool.open (SQLiteConnectionPool.java:177)
      at android.database.sqlite.SQLiteDatabase.openInner (SQLiteDatabase.java:806)
      at android.database.sqlite.SQLiteDatabase.open (SQLiteDatabase.java:791)
      at android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:694)
      at android.app.ContextImpl.openOrCreateDatabase (ContextImpl.java:571)
      at android.content.ContextWrapper.openOrCreateDatabase (ContextWrapper.java:269)
      at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked (SQLiteOpenHelper.java:223)
      at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:163)
      at com.onesignal.OneSignalDbHelper.getWritableDbWithRetries (OneSignalDbHelper.java:137)
      at com.onesignal.OneSignalCacheCleaner$1.run (OneSignalCacheCleaner.java:26)
      at java.lang.Thread.run (Thread.java:818)
    Caused by: android.database.sqlite.SQLiteBlobTooBigException: 
      at android.database.sqlite.SQLiteConnection.nativeExecuteForString (Native Method)
      at android.database.sqlite.SQLiteConnection.executeForString (SQLiteConnection.java:639)
      at android.database.sqlite.SQLiteConnection.setLocaleFromConfiguration (SQLiteConnection.java:372)
    

    Howdy,
    Thanks for the trace. It's possible this is a similar but altogether different issue (see SQLiteBlobTooBigException). We will continue investigating. Thanks again.

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException
    database is locked (code 5 SQLITE_BUSY)
    android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount (SQLiteConnection.java)
    android.database.sqlite.SQLiteConnection.executeForChangedRowCount (SQLiteConnection.java:787)
    android.database.sqlite.SQLiteSession.executeForChangedRowCount (SQLiteSession.java:754)
    android.database.sqlite.SQLiteStatement.executeUpdateDelete (SQLiteStatement.java:64)
    android.database.sqlite.SQLiteDatabase.delete (SQLiteDatabase.java:1610)
    com.onesignal.OneSignalCacheCleaner.cleanCachedNotifications (OneSignalCacheCleaner.java:147)
    com.onesignal.OneSignalCacheCleaner.access$000 (OneSignalCacheCleaner.java:18)
    com.onesignal.OneSignalCacheCleaner$1.run (OneSignalCacheCleaner.java:50)

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException
    database is locked (code 5 SQLITE_BUSY[5]): retrycount exceeded
    android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow (SQLiteConnection.java)
    android.database.sqlite.SQLiteConnection.executeForCursorWindow (SQLiteConnection.java:1196)
    android.database.sqlite.SQLiteSession.executeForCursorWindow (SQLiteSession.java:838)
    android.database.sqlite.SQLiteQuery.fillWindow (SQLiteQuery.java:62)
    android.database.sqlite.SQLiteCursor.fillWindow (SQLiteCursor.java:165)
    android.database.sqlite.SQLiteCursor.getCount (SQLiteCursor.java:152)
    com.onesignal.OneSignalCacheCleaner$2.run (OneSignalCacheCleaner.java:94)
    java.lang.Thread.run (Thread.java:919)

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException
    database is locked (code 5 SQLITE_BUSY): retrycount exceeded
    android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow (SQLiteConnection.java)
    android.database.sqlite.SQLiteConnection.executeForCursorWindow (SQLiteConnection.java:942)
    android.database.sqlite.SQLiteSession.executeForCursorWindow (SQLiteSession.java:838)
    android.database.sqlite.SQLiteQuery.fillWindow (SQLiteQuery.java:62)
    android.database.sqlite.SQLiteCursor.fillWindow (SQLiteCursor.java:153)
    android.database.sqlite.SQLiteCursor.getCount (SQLiteCursor.java:140)
    android.database.AbstractCursor.moveToPosition (AbstractCursor.java:232)
    android.database.AbstractCursor.moveToFirst (AbstractCursor.java:271)
    com.onesignal.outcomes.OSOutcomeEventsCache.getAllEventsToSend (OSOutcomeEventsCache.java:173)
    com.onesignal.outcomes.OSOutcomeEventsRepository.getSavedOutcomeEvents (OSOutcomeEventsRepository.java:30)
    com.onesignal.OSOutcomeEventsController$1.run (OSOutcomeEventsController.java:69)
    java.lang.Thread.run (Thread.java:919)

    and now in 3.14.0
    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
    at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java)
    at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:898)
    at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:643)
    at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:325)
    at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:299)
    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:220)
    at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:198)
    at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
    at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
    at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:836)
    at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:821)
    at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:714)
    at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1280)
    at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:268)
    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
    at com.onesignal.OneSignalDbHelper.getSQLiteDatabaseWithRetries(OneSignalDbHelper.java:155)
    at com.onesignal.GenerateNotification.createSummaryNotification(GenerateNotification.java:531)
    at com.onesignal.GenerateNotification.showNotification(GenerateNotification.java:385)
    at com.onesignal.GenerateNotification.fromJsonPayload(GenerateNotification.java:116)
    at com.onesignal.NotificationBundleProcessor.ProcessJobForDisplay(NotificationBundleProcessor.java:116)
    at com.onesignal.NotificationBundleProcessor.ProcessFromGCMIntentService(NotificationBundleProcessor.java:99)
    at com.onesignal.GcmIntentService.onHandleIntent(GcmIntentService.java:60)
    at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
    at android.os.Handler.dispatchMessage(Handler.java:111)
    at android.os.Looper.loop(Looper.java:194)
    at android.os.HandlerThread.run(HandlerThread.java:61)

    3.14.0

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException
    database is locked (code 5): , while compiling: PRAGMA journal_mode ################################################################# Error Code : 5 (SQLITE_BUSY) Caused By : The database file is locked. (database is locked (code 5): , while compiling: PRAGMA journal_mode) #################################################################
    android.database.sqlite.SQLiteConnection.nativePrepareStatement (SQLiteConnection.java)
    android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:194)
    com.onesignal.OneSignalDbHelper.getSQLiteDatabaseWithRetries (OneSignalDbHelper.java:155)
    com.onesignal.OSInAppMessageRepository.getCachedInAppMessages (OSInAppMessageRepository.java:46)
    com.onesignal.OSInAppMessageController.initRedisplayData (OSInAppMessageController.java:127)
    com.onesignal.OSInAppMessageController. (OSInAppMessageController.java:122)
    com.onesignal.OSInAppMessageController.getController (OSInAppMessageController.java:84)
    com.onesignal.OneSignal.addTrigger (OneSignal.java:3003)
    io.gonative.android.MainActivity$44.onClick (MainActivity.java:3241)

    The most cases on Huawei Android 9.
    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException: database is locked (Sqlite code 5 SQLITE_BUSY), (OS error - 11:Try again)
    at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(SQLiteConnection.java)
    at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:793)
    at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:769)
    at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:64)
    at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1883)
    at com.onesignal.OneSignalCacheCleaner.cleanCachedNotifications(OneSignalCacheCleaner.java:147)
    at com.onesignal.OneSignalCacheCleaner.access$000(OneSignalCacheCleaner.java:18)
    at com.onesignal.OneSignalCacheCleaner$1.run(OneSignalCacheCleaner.java:50)
    at java.lang.Thread.run(Thread.java:784)

    @jkasten2 please look into these many crashes in background android 9

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException
    database is locked (code 5 SQLITE_BUSY)
    android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount (SQLiteConnection.java)
    android.database.sqlite.SQLiteConnection.executeForChangedRowCount (SQLiteConnection.java:831)
    android.database.sqlite.SQLiteSession.executeForChangedRowCount (SQLiteSession.java:756)
    android.database.sqlite.SQLiteStatement.executeUpdateDelete (SQLiteStatement.java:66)
    android.database.sqlite.SQLiteDatabase.delete (SQLiteDatabase.java:1627)
    com.onesignal.OneSignalCacheCleaner.cleanCachedNotifications (OneSignalCacheCleaner.java:147)
    com.onesignal.OneSignalCacheCleaner.access$000 (OneSignalCacheCleaner.java:18)
    com.onesignal.OneSignalCacheCleaner$1.run (OneSignalCacheCleaner.java:50)
    java.lang.Thread.run (Thread.java:919)

    We have fixed the remaining SQL DB lock issues in release 3.14.1

    Hello, in my application, they are happening on a Samsung Galaxy J2 Prime device (grandpplte), 1536MB RAM, Android 6.0, with the following message:

    java.lang.NullPointerException:
    at com.onesignal.OneSignalCacheCleaner$2.run (OneSignalCacheCleaner.java:116)
    at java.lang.Thread.run (Thread.java:818)

    I am using the following version of OneSignal for the implementation in Gradle:
    dependencies {
    classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.12.7'
    }
    .....
    dependencies {
    .....
    implementation 'com.onesignal:OneSignal:3.14.0'
    .....
    }

    @danieldz7 Please try updating to implementation 'com.onesignal:OneSignal:3.14.1' since there were additional fixes about this issue in that update

    Thank you very much


    De: Josh Kasten notifications@github.com
    Enviado: segunda-feira, 15 de junho de 2020 18:43
    Para: OneSignal/OneSignal-Android-SDK OneSignal-Android-SDK@noreply.github.com
    Cc: Daniel Pereira danieldz7@msn.com; Mention mention@noreply.github.com
    Assunto: Re: [OneSignal/OneSignal-Android-SDK] android.database.sqlite.SQLiteDatabaseLockedException (#988)

    @danieldz7https://github.com/danieldz7 Please try updating to implementation 'com.onesignal:OneSignal:3.14.1' since there were additional fixes about this issue in that update

    —
    You are receiving this because you were mentioned.
    Reply to this email directly, view it on GitHubhttps://github.com/OneSignal/OneSignal-Android-SDK/issues/988#issuecomment-644405806, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABJS6Z5EQW7YO6USQ73XVX3RW2IWPANCNFSM4MEG6ZDA.

    Onesignal gradle version

    implementation 'com.onesignal:OneSignal:3.14.1'

    Android 9

    device - Samsung galaxy Note 8

    Fatal Exception: android.database.sqlite.SQLiteDatabaseLockedException
    database is locked (code 5 SQLITE_BUSY[5])
    android.database.sqlite.SQLiteConnection.nativeExecute (SQLiteConnection.java)
    android.database.sqlite.SQLiteConnection.execute (SQLiteConnection.java:759)
    android.database.sqlite.SQLiteSession.beginTransactionUnchecked (SQLiteSession.java:323)
    android.database.sqlite.SQLiteSession.beginTransaction (SQLiteSession.java:298)
    android.database.sqlite.SQLiteDatabase.beginTransaction (SQLiteDatabase.java:704)
    android.database.sqlite.SQLiteDatabase.beginTransaction (SQLiteDatabase.java:615)
    com.onesignal.OneSignalCacheCleaner$1.run (OneSignalCacheCleaner.java:44)
    java.lang.Thread.run (Thread.java:764)

    @jkasten2 please look into these crashes in android 9 and crashes in background

    Was this page helpful?
    0 / 5 - 0 ratings