-
Notifications
You must be signed in to change notification settings - Fork 75
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
"Pipe closed" when file measurements take long time #693
Comments
This is weird. Measuring the files takes so long, it even continues after it already started to send data. Even after 06-18 10:00:40.012 1010168 20318 21201 I FullBackup: Perform full backup for com.brave.browser.
06-18 10:00:40.014 1010168 20318 21201 I BackupCoordinator: Get backup quota for com.brave.browser. Is full backup: true.
06-18 10:00:40.015 1010168 20318 21201 I BackupCoordinator: Reported quota of 9223372036854775807 bytes.
06-18 10:00:40.153 1000 1581 14351 D BackupManagerService: [UserID:10] agentConnected pkg=com.brave.browser agent=android.os.BinderProxy@8de5499
06-18 10:00:40.153 1000 1581 24267 I BackupManagerService: [UserID:10] got agent android.app.IBackupAgent$Stub$Proxy@bc6d35e
06-18 10:00:40.167 1010259 24273 24288 I FullBackup_native: measured [/data/user/10/com.brave.browser] at 0
06-18 10:00:40.167 1010259 24273 24288 I FullBackup_native: measured [/data/user/10/com.brave.browser/app_top_sites] at 512
[...]
06-18 10:00:40.463 1010259 24273 24288 I FullBackup_native: measured [/storage/emulated/10/Android/data/com.brave.browser/files/Download] at 512
06-18 10:00:40.464 1010168 20318 21201 I FullBackup: Check full backup size of 37605376 bytes.
06-18 10:00:40.467 1000 1581 24289 I file_backup_helper: Name: apps/com.brave.browser/_manifest
06-18 10:00:40.467 1000 1581 24289 I FullBackup_native: measured [/data/system_ce/10/backup_stage/_manifest] at 2560
06-18 10:00:40.467 1000 1581 24289 I BackupRestoreController: Getting widget state for user: 10
06-18 10:00:40.467 1010168 20318 21201 D FullBackup: Initializing OutputStream for com.brave.browser.
06-18 10:00:40.467 1000 1581 24289 D BackupManagerService: Calling doFullBackup() on com.brave.browser
06-18 10:00:40.468 1010168 20318 21201 I NotificationBackupObserver: Showing progress notification for com.aurora.store 195/253
06-18 10:00:40.470 1010168 20318 21201 I NotificationBackupObserver: 195/253 - Brave (com.brave.browser)
06-18 10:00:40.472 1010259 24273 24288 I FullBackup_native: measured [/data/user/10/com.brave.browser] at 0
06-18 10:00:40.472 1010259 24273 24288 I file_backup_helper: Name: apps/com.brave.browser/r/app_top_sites
06-18 10:00:40.472 1010259 24273 24288 I FullBackup_native: measured [/data/user/10/com.brave.browser/app_top_sites] at 512
[...]
06-18 10:00:42.661 1010259 24273 24288 I FullBackup_native: measured [/data/user/10/com.brave.browser/app_chrome/oofiananboodjbbmdelgdommihjbkfag/1.0.170/6.0/httpse.leveldb/000006.log] at 512
06-18 10:00:42.662 1010259 24273 24288 I file_backup_helper: Name: apps/com.brave.browser/r/app_chrome/oofiananboodjbbmdelgdommihjbkfag/1.0.170/6.0/httpse.leveldb/000005.ldb
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: Error handling backup data for com.brave.browser:
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: java.io.IOException: Pipe closed
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:263)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at java.io.PipedInputStream.awaitSpace(PipedInputStream.java:271)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at java.io.PipedInputStream.receive(PipedInputStream.java:234)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at com.google.crypto.tink.subtle.StreamingAeadEncryptingStream.write(StreamingAeadEncryptingStream.java:85)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at com.google.crypto.tink.subtle.StreamingAeadEncryptingStream.write(StreamingAeadEncryptingStream.java:59)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at com.stevesoltys.seedvault.transport.backup.FullBackup.sendBackupData(FullBackup.kt:177)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at com.stevesoltys.seedvault.transport.backup.BackupCoordinator.sendBackupData(BackupCoordinator.kt:280)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at com.stevesoltys.seedvault.transport.ConfigurableBackupTransport$sendBackupData$1.invokeSuspend(ConfigurableBackupTransport.kt:203)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:280)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at com.stevesoltys.seedvault.transport.ConfigurableBackupTransport.sendBackupData(ConfigurableBackupTransport.kt:202)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at android.app.backup.BackupTransport$TransportImpl.sendBackupData(BackupTransport.java:900)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at com.android.internal.backup.IBackupTransport$Stub.onTransact(IBackupTransport.java:778)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at android.os.Binder.execTransactInternal(Binder.java:1505)
06-18 10:00:43.683 1010168 20318 21201 E FullBackup: at android.os.Binder.execTransact(Binder.java:1444) |
This happened ~5min later, past the end of the above log, and then it resumed until it came to Cromite, where the same thing happened.
|
When logging exceptions thrown while closing, we don't get the underlying cause either, because the crypto stream still wants to write something before really closing: 06-20 10:39:31.817 1010168 30423 30460 W FullBackup: Error closing:
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: java.io.IOException: Pipe closed
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:263)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at java.io.PipedInputStream.receive(PipedInputStream.java:229)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.google.crypto.tink.subtle.StreamingAeadEncryptingStream.close(StreamingAeadEncryptingStream.java:111)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.stevesoltys.seedvault.transport.backup.FullBackup.closeLogging(FullBackup.kt:228)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.stevesoltys.seedvault.transport.backup.FullBackup.clearState(FullBackup.kt:215)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.stevesoltys.seedvault.transport.backup.FullBackup.cancelFullBackup(FullBackup.kt:202)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.stevesoltys.seedvault.transport.backup.BackupCoordinator.cancelFullBackup(BackupCoordinator.kt:307)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.stevesoltys.seedvault.transport.ConfigurableBackupTransport$cancelFullBackup$1.invokeSuspend(ConfigurableBackupTransport.kt:207)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:280)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:85)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.stevesoltys.seedvault.transport.ConfigurableBackupTransport.cancelFullBackup(ConfigurableBackupTransport.kt:206)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at android.app.backup.BackupTransport$TransportImpl.cancelFullBackup(BackupTransport.java:910)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at com.android.internal.backup.IBackupTransport$Stub.onTransact(IBackupTransport.java:786)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at android.os.Binder.execTransactInternal(Binder.java:1505)
06-20 10:39:31.817 1010168 30423 30460 W FullBackup: at android.os.Binder.execTransact(Binder.java:1444) |
06-20 10:40:29.658 1000 1581 17014 D BackupManagerService: Calling doFullBackup() on org.cromite.cromite
06-20 10:40:29.659 1010168 30423 31873 I FullBackup: sendBackupData of 3072 bytes
06-20 10:40:29.659 1010168 30423 31873 D FullBackup: Initializing OutputStream for org.cromite.cromite.
06-20 10:40:29.660 1010168 30423 31873 I NotificationBackupObserver: Showing progress notification for org.calyxos.ripple 233/253
06-20 10:40:29.661 1010168 30423 31873 I NotificationBackupObserver: 233/253 - Cromite (org.cromite.cromite)
06-20 10:40:29.667 1010331 16998 17012 I FullBackup_native: measured [/data/user/10/org.cromite.cromite] at 0
06-20 10:40:29.667 1010331 16998 17012 I file_backup_helper: Name: apps/org.cromite.cromite/r/app_top_sites
[...]
06-20 10:40:32.691 1010168 30423 30460 I FullBackup: sendBackupData of 65536 bytes
06-20 10:40:32.691 1010331 16998 17012 I FullBackup_native: measured [/data/user/10/org.cromite.cromite/app_chrome/Default/Service Worker/CacheStorage/2088a2e28445b6466cd2e6e9e64ba713a7567a6c/852f6e7e-cd21-42b5-a6e6-36403db54ea8/246f5591cfd649db_0] at 131584
06-20 10:40:32.691 1010331 16998 17012 I file_backup_helper: Name: apps/org.cromite.cromite/r/app_chrome/Default/Service Worker/CacheStorage/2088a2e28445b6466cd2e6e9e64ba713a7567a6c/852f6e7e-cd21-42b5-a6e6-36403db54ea8/9d21e5ad5d56d623_0
[...]
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: Error handling backup data for org.cromite.cromite:
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: java.io.IOException: Pipe closed
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: at java.io.PipedInputStream.checkStateForReceive(PipedInputStream.java:263)
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: at java.io.PipedInputStream.awaitSpace(PipedInputStream.java:271)
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: at java.io.PipedInputStream.receive(PipedInputStream.java:234)
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: at java.io.PipedOutputStream.write(PipedOutputStream.java:149)
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: at com.google.crypto.tink.subtle.StreamingAeadEncryptingStream.write(StreamingAeadEncryptingStream.java:85)
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: at com.google.crypto.tink.subtle.StreamingAeadEncryptingStream.write(StreamingAeadEncryptingStream.java:59)
06-20 10:40:54.415 1010168 30423 30460 E FullBackup: at com.stevesoltys.seedvault.transport.backup.FullBackup.sendBackupData(FullBackup.kt:179)
[...]
06-20 10:45:29.674 1010168 30423 30460 I BackupCoordinator: Cancel full backup of org.cromite.cromite because of UNKNOWN_ERROR It started the stream at 10:40:29, then send data last time 10:40:32 and had the pipe closed 10:40:54, 22 seconds later. Write timeout is 60 and read timeout 240 seconds, so that shouldn't be causing the closed pipe. The system for some reason takes almost 5min to handle our |
Part of a test to get the underlying exception: 06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: *** Uncaught remote exception! Exceptions are not yet supported across processes. Client PID 0 UID 1000.
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at.bitfire.dav4jvm.exception.HttpException: HTTP 413
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:661)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:635)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at at.bitfire.dav4jvm.DavResource.put(DavResource.kt:478)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at at.bitfire.dav4jvm.DavResource.put$default(DavResource.kt:459)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at com.stevesoltys.seedvault.plugins.webdav.WebDavStorage$getOutputStream$deferred$1.invokeSuspend(WebDavStorage.kt:98)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:115)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:103)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697)
06-25 14:07:02.770 2210174 5639 11763 E JavaBinder: at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684)
06-25 14:07:02.770 2210174 5639 11763 I IPCThreadState: oneway function results for code 21 on binder at 0xb400006fbec93090 will be dropped but finished with status UNKNOWN_TRANSACTION |
D2D enabled, unlimited quota.
This is currently only happening for me in a couple of work profiles. I can't reproduce it on a test device, in or out of a work profile - at least for Brave.
Backup fails, and notification for backing up Brave remains for quite a while before proceeding. This happens on each backup attempt. At the end, an overall failure is reported, with "0 B" backed up.
I do not have the log for Nextcloud, currently, but here it is for Brave, starting with the app backed up prior to Brave (Aurora Store). I cut it off at this particular failure point, because as of this writing, the backup is still running.
brave_backup_failure_pipe_closed.txt
The text was updated successfully, but these errors were encountered: