Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Periodic Sync sometimes fails silently with DeadObjectException #495

Open
sunkup opened this issue Jan 29, 2025 · 5 comments
Open

Periodic Sync sometimes fails silently with DeadObjectException #495

sunkup opened this issue Jan 29, 2025 · 5 comments
Labels
bug Something isn't working

Comments

@sunkup
Copy link
Member

sunkup commented Jan 29, 2025

Android 15. Not reliably reproducible. Just set the interval to 15 min, close ICSx5 and wait.

Seems to only occur on enqueued periodic syncs until now. Not on manual syncs.

Work [ id=d4370a48-a6cf-4f68-90a8-c81d9e28e6a3, tags={ at.bitfire.icsdroid.PeriodicSyncWorker } ] failed because it threw an exception/error
                 android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
                 	at android.os.BinderProxy.transactNative(Native Method)
                 	at android.os.BinderProxy.transact(BinderProxy.java:586)
                 	at android.content.ContentProviderProxy.query(ContentProviderNative.java:493)
                 	at android.content.ContentProviderClient.query(ContentProviderClient.java:196)
                 	at android.content.ContentProviderClient.query(ContentProviderClient.java:178)
                 	at android.content.ContentProviderClient.query(ContentProviderClient.java:168)
                 	at at.bitfire.ical4android.AndroidCalendar$Companion.find(AndroidCalendar.kt:141)
                 	at at.bitfire.icsdroid.calendar.LocalCalendar$Companion.findUnmanaged(LocalCalendar.kt:80)
                 	at at.bitfire.icsdroid.BaseSyncWorker.migrateLegacyCalendars(BaseSyncWorker.kt:116)
                 	at at.bitfire.icsdroid.BaseSyncWorker.doWork$suspendImpl(BaseSyncWorker.kt:62)
                 	at at.bitfire.icsdroid.BaseSyncWorker.doWork(Unknown Source:0)
                 	at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(CoroutineWorker.kt:67)
                 	at androidx.work.CoroutineWorker$startWork$1.invoke(Unknown Source:8)
                 	at androidx.work.CoroutineWorker$startWork$1.invoke(Unknown Source:4)
                 	at androidx.work.ListenableFutureKt$launchFuture$1$2.invokeSuspend(ListenableFuture.kt:42)
                 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
                 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:100)
                 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:586)
                 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:829)
                 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:717)
                 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:704)
@sunkup sunkup added the bug Something isn't working label Jan 29, 2025
@sunkup sunkup changed the title Periodic Sync fails silently with DeadObjectException Periodic Sync sometimes fails silently with DeadObjectException Jan 29, 2025
@zenlord
Copy link

zenlord commented Jan 31, 2025

I can confirm scheduled sync stopped working for me on Android 15 (Pixel 6a). My only external calendar is an Outlook one. Manual sync works without problem.

I don't see any logs or error messages (don't know how, but willing to test if deemed useful).

@MadPierrot
Copy link

Same problem here on Android 15 (Pixel 8 pro).

@sunkup
Copy link
Member Author

sunkup commented Feb 3, 2025

@zenlord @MadPierrot does this work for you?

@zenlord
Copy link

zenlord commented Feb 3, 2025

Looks like it worked. I had already tried setting a different sync interval, which did not work, but now I have set it back to the initial interval and it started syncing automatically again (for me at least).

Thx!

@MadPierrot
Copy link

MadPierrot commented Feb 3, 2025

@sunkup , on my device it works for the next sync interval, then the software stops again.

02-03 20:40:06.215  5992  6013 I icsx5   : Synchronizing (forceReSync=false,onlyMigrate=false)
02-03 20:40:06.219  5992  6013 W IPCThreadState: Transaction failed because process frozen.
02-03 20:40:06.220  1763  5505 W ActivityManager: pid 5992 at.bitfire.icsdroid sent binder code 1 with flags 2 to frozen apps and got error -2147483646
02-03 20:40:06.221  1763  1864 I ActivityManager: Killing 4107:com.android.providers.calendar/u0a90 (adj 905): Sync transaction while frozen
02-03 20:40:06.224  5992  6006 D WM-GreedyScheduler: Cancelling work ID f2e91d73-f97f-44c8-995a-1a02e7719d46
02-03 20:40:06.227  5992  6006 D WM-PackageManagerHelper: Skipping component enablement for androidx.work.impl.background.systemalarm.RescheduleReceiver
02-03 20:40:06.227  5992  6013 E JavaBinder: !!! FAILED BINDER TRANSACTION !!!  (parcel size = 524)
02-03 20:40:06.200  5992  6010 D WM-Processor: Processor: processing WorkGenerationalId(workSpecId=f2e91d73-f97f-44c8-995a-1a02e7719d46, generation=0)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: Work [ id=f2e91d73-f97f-44c8-995a-1a02e7719d46, tags={ at.bitfire.icsdroid.PeriodicSyncWorker } ] failed because it threw an exception/error
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died, but this could also be caused by running out of binder buffer space
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at android.os.BinderProxy.transactNative(Native Method)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at android.os.BinderProxy.transact(BinderProxy.java:586)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at android.content.ContentProviderProxy.query(ContentProviderNative.java:493)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at android.content.ContentProviderClient.query(ContentProviderClient.java:196)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at android.content.ContentProviderClient.query(ContentProviderClient.java:178)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at android.content.ContentProviderClient.query(ContentProviderClient.java:168)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at at.bitfire.ical4android.AndroidCalendar$Companion.find(SourceFile:141)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at at.bitfire.icsdroid.calendar.LocalCalendar$Companion.findUnmanaged(SourceFile:80)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at at.bitfire.icsdroid.BaseSyncWorker.migrateLegacyCalendars(SourceFile:116)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at at.bitfire.icsdroid.BaseSyncWorker.doWork$suspendImpl(SourceFile:62)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at at.bitfire.icsdroid.BaseSyncWorker.doWork(Unknown Source:0)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(SourceFile:67)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at androidx.work.CoroutineWorker$startWork$1.invoke(SourceFile:0)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at androidx.work.CoroutineWorker$startWork$1.invoke(SourceFile:0)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at androidx.work.ListenableFutureKt$launchFuture$1$2.invokeSuspend(SourceFile:42)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(SourceFile:33)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at kotlinx.coroutines.DispatchedTask.run(SourceFile:100)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(SourceFile:586)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(SourceFile:829)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(SourceFile:717)
02-03 20:40:06.233  5992  6010 E WM-WorkerWrapper: 	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:704)
02-03 20:40:06.236  5992  6010 D WM-GreedyScheduler: Cancelling work ID f2e91d73-f97f-44c8-995a-1a02e7719d46
02-03 20:40:06.243  5992  6010 D WM-PackageManagerHelper: androidx.work.impl.background.systemalarm.RescheduleReceiver disabled


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants