-
-
Notifications
You must be signed in to change notification settings - Fork 94
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Depends on #1588
This error "FOREIGN KEY constraint failed" happened right after adding our icloud.com test account when refreshing the collection list.
What was interesting:
- In the CalDAV tab the only calendar showed up.
- Then it seems the collection refresh crashed and stopped.
- After manually triggering the refresh list also the "Reminders" showed up additionally in the CalDAV list.
Original stack trace
EXCEPTION android.database.sqlite.SQLiteConstraintException: FOREIGN KEY constraint failed (code 787 SQLITE_CONSTRAINT_FOREIGNKEY[787]) at android.database.sqlite.SQLiteConnection.nativeExecute(Native Method) at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:1052) at android.database.sqlite.SQLiteSession.execute(SQLiteSession.java:645) at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:47) at androidx.sqlite.db.framework.FrameworkSQLiteStatement.execute(SourceFile:3) at androidx.room.driver.SupportSQLiteStatement$SupportOtherAndroidSQLiteStatement.step(SourceFile:6) at androidx.room.EntityInsertAdapter.insertAndReturnId(SourceFile:22) at at.bitfire.davdroid.db.CollectionDao_Impl.insert$lambda$0(SourceFile:8) at at.bitfire.davdroid.db.CollectionDao_Impl.$r8$lambda$0GN_06ZCGieHlp6x32pBBz_7eoI(SourceFile:1) at at.bitfire.davdroid.db.CollectionDao_Impl$$ExternalSyntheticLambda1.invoke(SourceFile:1) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invokeSuspend(SourceFile:208) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invoke(SourceFile:13) at androidx.room.driver.SupportSQLiteConnectionPool.useConnection(SourceFile:24) at androidx.room.RoomDatabase.useConnection$room_runtime_release(SourceFile:7) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invokeSuspend(SourceFile:61) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(SourceFile:13) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invokeSuspend(SourceFile:43) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(SourceFile:13) at kotlinx.coroutines.AbstractCoroutine.start(SourceFile:39) at kotlinx.coroutines.JobKt.launch(Unknown Source:24) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1.invokeSuspend(SourceFile:41) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:9) at kotlinx.coroutines.DispatchedTask.run(SourceFile:115) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(SourceFile:77) at kotlinx.coroutines.JobKt.runBlocking(Unknown Source:99) at kotlin.TuplesKt.runBlockingUninterruptible(SourceFile:12) at androidx.tracing.Trace.performBlocking(SourceFile:22) at at.bitfire.davdroid.db.CollectionDao_Impl.insert(SourceFile:16) at at.bitfire.davdroid.db.CollectionDao.insertOrUpdateByUrl(SourceFile:84) at at.bitfire.davdroid.db.CollectionDao_Impl.insertOrUpdateByUrl$lambda$4(SourceFile:6) at at.bitfire.davdroid.db.CollectionDao_Impl.$r8$lambda$rkuJxd5q8lESaECGqnpUGwNO_Ag(SourceFile:1) at at.bitfire.davdroid.db.CollectionDao_Impl$$ExternalSyntheticLambda1.invoke(SourceFile:1) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invokeSuspend(SourceFile:208) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invoke(SourceFile:13) at androidx.room.driver.SupportSQLiteConnectionPool.useConnection(SourceFile:24) at androidx.room.RoomDatabase.useConnection$room_runtime_release(SourceFile:7) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invokeSuspend(SourceFile:61) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(SourceFile:13) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invokeSuspend(SourceFile:43) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(SourceFile:13) at kotlinx.coroutines.AbstractCoroutine.start(SourceFile:39) at kotlinx.coroutines.JobKt.launch(Unknown Source:24) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1.invokeSuspend(SourceFile:41) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:9) at kotlinx.coroutines.DispatchedTask.run(SourceFile:115) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(SourceFile:77) at kotlinx.coroutines.JobKt.runBlocking(Unknown Source:99) at kotlin.TuplesKt.runBlockingUninterruptible(SourceFile:12) at androidx.tracing.Trace.performBlocking(SourceFile:22) at at.bitfire.davdroid.db.CollectionDao_Impl.insertOrUpdateByUrl(SourceFile:15) at at.bitfire.davdroid.repository.DavCollectionRepository.insertOrUpdateByUrl(SourceFile:8) at at.bitfire.davdroid.repository.DavCollectionRepository.insertOrUpdateByUrlAndRememberFlags$lambda$3(SourceFile:79) at at.bitfire.davdroid.repository.DavCollectionRepository.$r8$lambda$ayjKLpIHgkm1h0HN3PYIOpI-3Fk(SourceFile:1) at at.bitfire.davdroid.repository.DavCollectionRepository$$ExternalSyntheticLambda11.run(SourceFile:1) at androidx.room.RoomDatabase$$ExternalSyntheticLambda0.invoke(SourceFile:439) at androidx.room.RoomDatabase.runInTransaction(SourceFile:5) at androidx.room.RoomDatabase.runInTransaction(SourceFile:1) at at.bitfire.davdroid.repository.DavCollectionRepository.insertOrUpdateByUrlAndRememberFlags(SourceFile:13) at at.bitfire.davdroid.servicedetection.CollectionListRefresher.refreshHomesetsAndTheirCollections$lambda$12(SourceFile:239) at at.bitfire.davdroid.servicedetection.CollectionListRefresher.$r8$lambda$hanFymCZ-_mW7wMpEfQ4gUQofn0(SourceFile:1) at at.bitfire.davdroid.servicedetection.CollectionListRefresher$$ExternalSyntheticLambda3.onResponse(SourceFile:1) at at.bitfire.dav4jvm.Response$Companion.parse(SourceFile:320) at at.bitfire.dav4jvm.DavResource.processMultiStatus$parseMultiStatus(SourceFile:51) at at.bitfire.dav4jvm.DavResource.processMultiStatus(SourceFile:19) at at.bitfire.dav4jvm.DavResource.processMultiStatus(SourceFile:10) at at.bitfire.dav4jvm.DavResource.propfind(SourceFile:75) at at.bitfire.davdroid.servicedetection.CollectionListRefresher.refreshHomesetsAndTheirCollections$davx5_405020000_4_5_2_alpha_1_gplayRelease(SourceFile:211) at at.bitfire.davdroid.servicedetection.RefreshCollectionsWorker.doWork$lambda$3$lambda$2(SourceFile:54) at at.bitfire.davdroid.servicedetection.RefreshCollectionsWorker.$r8$lambda$phNEMoL0Zrza1EpdNukywL-2Cko(SourceFile:1) at kotlin.text.Regex$$ExternalSyntheticLambda0.invoke(SourceFile:148) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(SourceFile:59) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(SourceFile:13) at okio.Options$Companion.startUndspatched(SourceFile:19) at kotlinx.coroutines.JobKt.withContext(Unknown Source:45) at kotlinx.coroutines.JobKt.runInterruptible(Unknown Source:7) at at.bitfire.davdroid.servicedetection.RefreshCollectionsWorker.doWork(SourceFile:163) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(SourceFile:29) at androidx.work.CoroutineWorker$startWork$1.invoke(SourceFile:13) at androidx.work.ListenableFutureKt$launchFuture$1$2.invokeSuspend(SourceFile:37) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:9) at kotlinx.coroutines.DispatchedTask.run(SourceFile:115) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:118)
Unscrambled stack trace with mapping.txt
EXCEPTION android.database.sqlite.SQLiteConstraintException: FOREIGN KEY constraint failed (code 787 SQLITE_CONSTRAINT_FOREIGNKEY[787]) at android.database.sqlite.SQLiteConnection.nativeExecute(SQLiteConnection.java) at android.database.sqlite.SQLiteConnection.execute(SQLiteConnection.java:1052) at android.database.sqlite.SQLiteSession.execute(SQLiteSession.java:645) at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:47) at androidx.sqlite.db.framework.FrameworkSQLiteStatement.execute(FrameworkSQLiteStatement.java:30) at androidx.room.driver.SupportSQLiteStatement$SupportOtherAndroidSQLiteStatement.step(SupportSQLiteStatement.java:415) at androidx.room.EntityInsertAdapter.insertAndReturnId(EntityInsertAdapter.java:107) at at.bitfire.davdroid.db.CollectionDao_Impl.insert$lambda$0(CollectionDao_Impl.java:296) at at.bitfire.davdroid.db.CollectionDao_Impl.$r8$lambda$0GN_06ZCGieHlp6x32pBBz_7eoI(CollectionDao_Impl.java:0) at at.bitfire.davdroid.db.CollectionDao_Impl$$ExternalSyntheticLambda1.invoke(CollectionDao_Impl.java:0) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invokeSuspend(DBUtil__DBUtil_androidKt.java:68) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.driver.SupportSQLiteConnectionPool.useConnection(SupportSQLiteConnectionPool.java:42) at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.java:126) at androidx.room.RoomDatabase.useConnection$room_runtime_release(RoomDatabase.java:593) at androidx.room.util.DBUtil__DBUtilKt.internalPerform$$forInline(DBUtil__DBUtilKt.java:48) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invokeSuspend(DBUtil__DBUtil_androidKt.java:74) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invokeSuspend(RunBlockingUninterruptible_androidKt.java:52) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(RunBlockingUninterruptible_androidKt.java:0) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(RunBlockingUninterruptible_androidKt.java:0) at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(UndispatchedKt.java:20) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.java:360) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.java:134) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Unknown Source:53) at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1.invokeSuspend(RunBlockingUninterruptible_androidKt.java:51) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(BaseContinuationImpl.java:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoopImplBase.java:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(BuildersKt__BuildersKt.java:48) at kotlinx.coroutines.BuildersKt.runBlocking$default(BuildersKt.java:1) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt.runBlockingUninterruptible(RunBlockingUninterruptible_androidKt.java:45) at androidx.room.util.DBUtil__DBUtil_androidKt.performBlocking(DBUtil__DBUtil_androidKt.java:69) at androidx.room.util.DBUtil.performBlocking(DBUtil.java:1) at at.bitfire.davdroid.db.CollectionDao_Impl.insert(CollectionDao_Impl.java:294) at at.bitfire.davdroid.db.CollectionDao.insertOrUpdateByUrl(CollectionDao.java:123) at at.bitfire.davdroid.db.CollectionDao_Impl.insertOrUpdateByUrl$lambda$4(CollectionDao_Impl.java:318) at at.bitfire.davdroid.db.CollectionDao_Impl.$r8$lambda$rkuJxd5q8lESaECGqnpUGwNO_Ag(CollectionDao_Impl.java:0) at at.bitfire.davdroid.db.CollectionDao_Impl$$ExternalSyntheticLambda1.invoke(CollectionDao_Impl.java:0) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invokeSuspend(DBUtil__DBUtil_androidKt.java:68) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$invokeSuspend$$inlined$internalPerform$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.driver.SupportSQLiteConnectionPool.useConnection(SupportSQLiteConnectionPool.java:42) at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.java:126) at androidx.room.RoomDatabase.useConnection$room_runtime_release(RoomDatabase.java:593) at androidx.room.util.DBUtil__DBUtilKt.internalPerform$$forInline(DBUtil__DBUtilKt.java:48) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invokeSuspend(DBUtil__DBUtil_androidKt.java:74) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(DBUtil__DBUtil_androidKt.java:0) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invokeSuspend(RunBlockingUninterruptible_androidKt.java:52) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(RunBlockingUninterruptible_androidKt.java:0) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(RunBlockingUninterruptible_androidKt.java:0) at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(UndispatchedKt.java:20) at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.java:360) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.java:134) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Unknown Source:53) at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1.invokeSuspend(RunBlockingUninterruptible_androidKt.java:51) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(BaseContinuationImpl.java:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:100) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoopImplBase.java:263) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Unknown Source:94) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Unknown Source:70) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(BuildersKt__BuildersKt.java:48) at kotlinx.coroutines.BuildersKt.runBlocking$default(BuildersKt.java:1) at androidx.room.coroutines.RunBlockingUninterruptible_androidKt.runBlockingUninterruptible(RunBlockingUninterruptible_androidKt.java:45) at androidx.room.util.DBUtil__DBUtil_androidKt.performBlocking(DBUtil__DBUtil_androidKt.java:69) at androidx.room.util.DBUtil.performBlocking(DBUtil.java:1) at at.bitfire.davdroid.db.CollectionDao_Impl.insertOrUpdateByUrl(CollectionDao_Impl.java:316) at at.bitfire.davdroid.repository.DavCollectionRepository.insertOrUpdateByUrl(DavCollectionRepository.java:250) at at.bitfire.davdroid.repository.DavCollectionRepository.insertOrUpdateByUrlAndRememberFlags$lambda$3(DavCollectionRepository.java:242) at at.bitfire.davdroid.repository.DavCollectionRepository.$r8$lambda$ayjKLpIHgkm1h0HN3PYIOpI-3Fk(DavCollectionRepository.java:0) at at.bitfire.davdroid.repository.DavCollectionRepository$$ExternalSyntheticLambda11.run(DavCollectionRepository.java:0) at androidx.room.RoomDatabase.runInTransaction$lambda$10(RoomDatabase.java:733) at androidx.room.RoomDatabase$$ExternalSyntheticLambda0.invoke(RoomDatabase.java:0) at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:758) at androidx.room.RoomDatabase.runInTransaction$lambda$10(RoomDatabase.java:733) at androidx.room.RoomDatabase.runInTransaction(RoomDatabase.java:733) at at.bitfire.davdroid.repository.DavCollectionRepository.insertOrUpdateByUrlAndRememberFlags(DavCollectionRepository.java:232) at at.bitfire.davdroid.servicedetection.CollectionListRefresher.refreshHomesetsAndTheirCollections$lambda$12(CollectionListRefresher.java:282) at at.bitfire.davdroid.servicedetection.CollectionListRefresher.$r8$lambda$hanFymCZ-_mW7wMpEfQ4gUQofn0(CollectionListRefresher.java:0) at at.bitfire.davdroid.servicedetection.CollectionListRefresher$$ExternalSyntheticLambda3.onResponse(CollectionListRefresher.java:0) at at.bitfire.dav4jvm.Response$Companion.parse(Response.java:224) at at.bitfire.dav4jvm.DavResource.processMultiStatus$parseMultiStatus(DavResource.java:812) at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.java:831) at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.java:782) at at.bitfire.dav4jvm.DavResource.propfind(DavResource.java:588) at at.bitfire.davdroid.servicedetection.CollectionListRefresher.refreshHomesetsAndTheirCollections$davx5_405020000_4_5_2_alpha_1_gplayRelease(CollectionListRefresher.java:211) at at.bitfire.davdroid.servicedetection.RefreshCollectionsWorker.doWork$lambda$3$lambda$2(RefreshCollectionsWorker.java:168) at at.bitfire.davdroid.servicedetection.RefreshCollectionsWorker.$r8$lambda$phNEMoL0Zrza1EpdNukywL-2Cko(RefreshCollectionsWorker.java:0) at kotlin.text.Regex$$ExternalSyntheticLambda0.invoke(Regex.java:148) at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(InterruptibleKt.java:48) at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(InterruptibleKt.java:1) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(InterruptibleKt.java:40) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(InterruptibleKt.java:0) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(InterruptibleKt.java:0) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndspatched(UndispatchedKt.java:66) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Unknown Source:43) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Unknown Source:157) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) at kotlinx.coroutines.InterruptibleKt.runInterruptible(Unknown Source:39) at kotlinx.coroutines.InterruptibleKt.runInterruptible$default(InterruptibleKt.java:36) at at.bitfire.davdroid.servicedetection.RefreshCollectionsWorker.doWork(RefreshCollectionsWorker.java:157) at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.java:67) at androidx.work.CoroutineWorker$startWork$1.invoke(CoroutineWorker.java:0) at androidx.work.CoroutineWorker$startWork$1.invoke(CoroutineWorker.java:0) at androidx.work.ListenableFutureKt$launchFuture$1$2.invokeSuspend(ListenableFutureKt.java:42) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(BaseContinuationImpl.java:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.java:100) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.java:586) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.java:829) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.java:717) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.java:704)
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Todo