This is a serious problem. Here’s a list of all the recent reports (8 including mine):
- Backup - Detected non-empty blocksets with no associated blocks!
- Fatal error: Detected non-empty blocksets with no associated blocks (this one)
- Failed: Detected non-empty blocksets with no associated blocks
- Backup failing due to unexpected difference in fileset
- Detected non-empty blocksets with no associated blocks!
- Backup stalled and now will not run
- V2.0.3.8 Linux - Detected non-empty blocksets with no associated blocks! (merged)
- Fatal error System.Exception: Detected non-empty blocksets with no associated blocks!
- Backup started failing "non-empty blocksets with no associated blocks"
And it’s serious because it is non-recoverable. One person was able to fix by restoring the Duplicati database which he backed up separately. Most people have to delete the backup and start again (which can take days).
I may have a clue as to what causes this. It may have to do with running alternately with and without privs, which changes what files are visible to Duplicati.
I was running version duplicati-2.0.4.5_beta_2018-11-28-x64 on Windows 8.
My sequence of runs was:
- Run as user1 with no privs, and attempt to backup user1 and user2’s files.
- did not backup any of user2’s files - gave warnings.
- did not see at all user1’s priv’ed files, eg
C:\Users\USER1\NTUSER.DAT
- Run as user1 with privs (Run as administrator), but with
--snapshot-policy=
off- did backup user2’s files.
- could see user1’s priv’ed files, eg
C:\Users\USER1\NTUSER.DAT
- but threw
Failed to process path
warnings on them.
- Run as user1 with privs (Run as administrator), with
--snapshot-policy=
on- did back up user2’s files.
- could see user1’s priv’ed files, eg
C:\Users\USER1\NTUSER.DAT
- and no warnings on them. Assume it snapshotted them (VSS) and backed them up.
- PC rebooted.
- Duplicati restarted via
c:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
which starts it UN-prived. - So run again as user1 with no privs, and I got this error
System.Exception: Detected non-empty blocksets with no associated blocks!
So here’s my wild guess: that final run that errors was with NO privs after running WITH privs. So the final error run would see fewer files than the previous one. And somehow that’s where the blocksets and blocks get out of sync. Just a guess, but this user suspected something similar
If I’m wrong, hopefully the sequence might be helpful to someone.
Here’s my stack trace (I manually added newlines before each “at”)
Jan 7, 2019 9:22 PM: Failed while executing "Backup" with id: 1
System.Exception: Detected non-empty blocksets with no associated blocks!
at Duplicati.Library.Main.Database.LocalDatabase.VerifyConsistency(Int64 blocksize, Int64 hashsize, Boolean verifyfilelists, IDbTransaction transaction)
at Duplicati.Library.Main.Operation.Backup.BackupDatabase.<>c__DisplayClass32_0.<VerifyConsistencyAsync>b__0()
at Duplicati.Library.Main.Operation.Common.SingleRunner.<>c__DisplayClass3_0.<RunOnMain>b__0()
at Duplicati.Library.Main.Operation.Common.SingleRunner.<DoRunOnMain>d__2`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.BackupHandler.<RunAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at CoCoL.ChannelExtensions.WaitForTaskOrThrow(Task task)
at Duplicati.Library.Main.Controller.<>c__DisplayClass13_0.<Backup>b__0(BackupResults result)
at Duplicati.Library.Main.Controller.RunAction[T](T result, String[]& paths, IFilter& filter, Action`1 method)
at Duplicati.Library.Main.Controller.Backup(String[] inputsources, IFilter filter) at Duplicati.Server.Runner.Run(IRunnerData data, Boolean fromQueue)