Android file sharing API seems to be dependent on the inode number.
I’m syncing a calendar.ics
file from Linux to Android to be used by ICSx5 app. Even when the file inode doesn’t change on Linux, it is changed on Android on every change operation. This results in failure when ICSx5 tries to access the file again:
java.io.IOException: Couldn't open file from storage
at at.bitfire.icsdroid.CalendarFetcher.fetchLocal$icsx5_75_2_2_standardRelease(Unknown Source:155)
at at.bitfire.icsdroid.CalendarFetcher.fetch(Unknown Source:42)
at at.bitfire.icsdroid.ProcessEventsTask.processEvents(SourceFile:0)
at at.bitfire.icsdroid.ProcessEventsTask.sync(Unknown Source:77)
at at.bitfire.icsdroid.SyncWorker.doWork(Unknown Source:276)
at androidx.work.CoroutineWorker$startWork$1.invokeSuspend(Unknown Source:32)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(Unknown Source:11)
at kotlinx.coroutines.DispatchedTask.run(Unknown Source:98)
at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(Unknown Source:0)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(Unknown Source:14)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(Unknown Source:28)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(Unknown Source:0)
This issue: In place file updates · Issue #3897 · syncthing/syncthing · GitHub seems relevant but for some reason, I did not get this issue on previous syncthing updates. I’m trying to determine the first version update that resulted in this.