-
Notifications
You must be signed in to change notification settings - Fork 80
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
Tell system to reinitialize when it refuses to give us data we need #845
Conversation
Draft, only because based on #835. One way to test this is to do a backup, then manually remove all existing snapshots from the backend. Then restart the Seedvault process and do another backup and watch the log for |
f2665fa
to
eaee625
Compare
Another hacky workaround to fix a hacky workaround. We had talked to Google about the backup API not getting notified when essential K/V apps like @pm@ don't have new data for backup. The only option they offered is BackupMonitor which gets the information at least, but out of process on another thread. So we implemented a hacky workaround where BackupMonitor tells SnapshotCreator to extract backup data from an old snapshot. Unfortunately, it is possible that we do a backup run which includes @pm@, but encounters an error later, so the system cancels the entire backup which causes us not to have @pm@ data in a snapshots for re-use. Still, the system thinks we backed up @pm@ and doesn't give us its data.
eaee625
to
f4b32e4
Compare
@t-m-w as lots of people seem to run into this, please let's prioritize this for merging. |
@grote This testing looks straightforward, so I will try to get to it soon. That being said, given that it is so straightforward, it is a shame that it is not really possible for affected users or community volunteers to test things like this themselves if they wish, I assume largely due to the OS-dependent process of building, signing, and shipping Seedvault — or well, at least the signing part. (I mean, it's not trivially possible for us to do, either, for those same reasons.) This is probably not relevant discussion for this PR, but just noting it. |
I've been running this on my daily driver for at least a week or two without issue, but I am just now getting around to testing.
I tried this, and indeed I received:
The snapshot appeared to succeed, and I see it when I try to restore. @grote Anything else you'd like me to try? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving based on the suggested test working as expected and not encountering any other issues while having the change on device for a while
Awesome, thanks for testing! |
Another hacky workaround to fix a hacky workaround.
We had talked to Google about the backup API not getting notified when essential K/V apps like
@pm@
don't have new data for backup. The only option they offered isBackupMonitor
which gets the information at least, but out of process on another thread.So we implemented a hacky workaround where
BackupMonitor
tellsSnapshotCreator
to extract backup data from an old snapshot.Unfortunately, it is possible that we do a backup run which includes
@pm@
, but encounters an error later, so the system cancels the entire backup which causes us not to have@pm@
data in a snapshots for re-use. Still, the system thinks we backed up@pm@
and doesn't give us its data.Closes #818