After upgrading to Canary 2.0.3.8 or 2.0.3.9, running a backup job results in corrupted backend files that don’t seem to be repairable.
After running a backup, the job fails with
Duplicati.Library.Interface.UserInformationException: Found 8 files that are missing from the remote storage, please run repair
bij Duplicati.Library.Main.Operation.FilelistProcessor.VerifyRemoteList(BackendManager backend, Options options, LocalDatabase database, IBackendWriter log, String protectedfile)
bij Duplicati.Library.Main.Operation.BackupHandler.PreBackupVerify(BackendManager backend, String protectedfile)
bij Duplicati.Library.Main.Operation.BackupHandler.Run(String[] sources, IFilter filter)
bij Duplicati.Library.Main.Controller.<>c__DisplayClass15_0.<Backup>b__0(BackupResults result)
bij Duplicati.Library.Main.Controller.RunAction[T](T result, String[]& paths, IFilter& filter, Action`1 method)
bij Duplicati.Library.Main.Controller.Backup(String[] inputsources, IFilter filter)
bij Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)
On 1 of the 2 systems, I was able to fix this using these steps:
- Stop the Duplicati service
- Downgrade by downloading the Zip version of 2.0.3.5 and copy the files over the current version
- Start the Duplicati service
- Manually delete the local DB file
- Repair the database. The database was recreated and ended with an error indicating that some remote files were missing.
- Run
list-broken-files
andpurge-broken-files
from the commandline menu item in the Web UI. Some files were found and purged successfully - Backups run fine on the first system with trhis symptoms.
On the second system I can’t get the backup working again. Running a backup ends with the error message above, complaining that some backup files are missing.
When running list-broken-files
or purge-broken-files
from the commandline in the Web UI, no files are listed or purged.
Repairing the database ends with error “Found 8 files that are missing from the remote storage, please run repair” after one or 2 seconds.
Running the repair command from the “real” command line returns this:
C:\>"C:\Program Files\Duplicati 2\Duplicati.CommandLine.exe" repair "webdavs://<storage-url>?auth-username=username&auth-password=password" --dbpath="C:\Program Files\Duplicati 2\data\DBNAME.sqlite" --passphrase=passphrase
Listing remote folder ...
Failed to perform cleanup for missing file: duplicati-b013ebd640a63445493919358fcd3c745.dblock.zip.aes, message: Unexpected empty block volume: duplicati-b013ebd640a63445493919358fcd3c745.dblock.zip.aes => Unexpected empty block volume: duplicati-b013ebd640a63445493919358fcd3c745.dblock.zip.aes
Failed to perform cleanup for missing file: duplicati-b897659fd532e4d1fb04186e820f01b57.dblock.zip.aes, message: Unexpected empty block volume: duplicati-b897659fd532e4d1fb04186e820f01b57.dblock.zip.aes => Unexpected empty block volume: duplicati-b897659fd532e4d1fb04186e820f01b57.dblock.zip.aes
Failed to perform cleanup for missing file: duplicati-b845b23e7cc754202bc6a7706a08d4cc4.dblock.zip.aes, message: Unexpected empty block volume: duplicati-b845b23e7cc754202bc6a7706a08d4cc4.dblock.zip.aes => Unexpected empty block volume: duplicati-b845b23e7cc754202bc6a7706a08d4cc4.dblock.zip.aes
Failed to perform cleanup for missing file: duplicati-bf71db3a541f14f358c45ed293e2f3e33.dblock.zip.aes, message: Unexpected empty block volume: duplicati-bf71db3a541f14f358c45ed293e2f3e33.dblock.zip.aes => Unexpected empty block volume: duplicati-bf71db3a541f14f358c45ed293e2f3e33.dblock.zip.aes
Failed to perform cleanup for missing file: duplicati-bc5b9e6a4db564c04ab4878b3872aa2b1.dblock.zip.aes, message: Unexpected empty block volume: duplicati-bc5b9e6a4db564c04ab4878b3872aa2b1.dblock.zip.aes => Unexpected empty block volume: duplicati-bc5b9e6a4db564c04ab4878b3872aa2b1.dblock.zip.aes
Failed to perform cleanup for missing file: duplicati-b63f807ac1e9d4840ae05d65cd7ff0182.dblock.zip.aes, message: Repair not possible, missing 1 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage. => Repair not possible, missing 1 blocks.
If you want to continue working with the database, you can use the "list-broken-files" and "purge-broken-files" commands to purge the missing data from the database and the remote storage.
Failed to perform cleanup for missing file: duplicati-b1da3693a2fa94bd5b638a9a64bc7947c.dblock.zip.aes, message: Unexpected empty block volume: duplicati-b1da3693a2fa94bd5b638a9a64bc7947c.dblock.zip.aes => Unexpected empty block volume: duplicati-b1da3693a2fa94bd5b638a9a64bc7947c.dblock.zip.aes
Failed to perform cleanup for missing file: duplicati-b669dc61755f44ea48921f76a60fdedd3.dblock.zip.aes, message: Unexpected empty block volume: duplicati-b669dc61755f44ea48921f76a60fdedd3.dblock.zip.aes => Unexpected empty block volume: duplicati-b669dc61755f44ea48921f76a60fdedd3.dblock.zip.aes
Update "2.0.3.9_canary_2018-06-30" detected
list-broken-files
doesn’t give any results:
C:\>"C:\Program Files\Duplicati 2\Duplicati.CommandLine.exe" list-broken-files "webdavs://<storage-url>?auth-username=username&auth-password=password" --dbpath="C:\Program Files\Duplicati 2\data\DBNAME.sqlite" --passphrase=passphrase
Listing remote folder …
So purge-broken-files
doesn’t fix anything:
C:\>"C:\Program Files\Duplicati 2\Duplicati.CommandLine.exe" purge-broken-files "webdavs://<storage-url>?auth-username=username&auth-password=password" --dbpath="C:\Program Files\Duplicati 2\data\DBNAME.sqlite" --passphrase=passphrase
Listing remote folder ...
Found no broken filesets, but 0 missing remote files
Update "2.0.3.9_canary_2018-06-30" detected
In summary, backup and repair tasks complain about missing files at the backend, but list-broken-files
and purge-broken-files
don’t find any files that are referenced in these missing files, making it unrepairable.