Thanks.
I also got one going starting from a smaller base that I had handy. Basically, C: to a USB drive, however database was on the drive and I was using VSS via snapshot-policy=Required which I think would avoid your collision if it’s Duplicati’s work and SQLite’s work colliding. The snapshot resides at a different path. Database got moved USB to C: for this test. It had been USB to share load, and ease disaster recovery.
This is still not what I’d call small, but if I can get it to fail, then I can try trimming. Good luck on your test.
EDIT 1:
A little off topic, but this USB drive used to have occasional image backups from Macrium Reflect Free, which is mere hours away from a January 1, 2024 end of support. New plan for USB backup is unclear. Frequent backup are carefully selected (this can be challenging) things of interest to cloud destinations.
Backing up everything can be a safety net, but is likely to hit locked files and backup more than needed (saying this while watching Duplicati backup C:\Windows
for quite awhile now). Some relief is available from filter
, but I’m not sure how widely used filter-groups
are. Both have nice help text available.
EDIT 2:
Backup finished with 282 warnings (most on locked files because I had turned VSS off in hope of hang).
It picked up its own database journal file fine, but couldn’t get the database itself because of file locking:
2024-01-01 09:59:07 -05 - [Warning-Duplicati.Library.Main.Operation.Backup.FileBlockProcessor.FileEntry-PathProcessingFailed]: Failed to process path: C:\tmp\VAULQQSUZR.sqlite
System.IO.IOException: The process cannot access the file because another process has locked a portion of the file.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.ReadCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.FileStream.Read(Byte[] array, Int32 offset, Int32 count)
at System.IO.Stream.<>c.<BeginReadInternal>b__39_0(Object <p0>)
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.IO.Stream.EndRead(IAsyncResult asyncResult)
at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Utility.Utility.<ForceStreamReadAsync>d__31.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.StreamBlockSplitter.<>c__DisplayClass2_0.<<Run>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Duplicati.Library.Main.Operation.Backup.StreamBlock.<ProcessStream>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Duplicati.Library.Main.Operation.Backup.FileBlockProcessor.<>c__DisplayClass1_0.<<Run>b__0>d.MoveNext()
Here’s a different style of locked file problem, which might be this Duplicati trying to backup its temp file:
2023-12-31 21:28:32 -05 - [Warning-Duplicati.Library.Main.Operation.Backup.FileBlockProcessor.FileEntry-PathProcessingFailed]: Failed to process path: C:\Windows\Temp\dup-151d8d46-524e-4c61-b1e4-ba892e42f4e9
System.IO.IOException: The process cannot access the file '\\?\C:\Windows\Temp\dup-151d8d46-524e-4c61-b1e4-ba892e42f4e9' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at Duplicati.Library.Common.IO.SystemIOWindows.FileOpenRead(String path)
at Duplicati.Library.Main.Operation.Backup.FileBlockProcessor.<>c__DisplayClass1_0.<<Run>b__0>d.MoveNext()
This sort of problem is normal when VSS isn’t enabled to allow access to the locked files. A hang isn’t.
Still looking for a good recipe.