2.0.3.5 ignoring exclude-files-attributes

I’ve found with 2.0.3.5, it is ignoring entries in exclude-files-attributes, when certain folders/files is set to any of the options (or it may be ignoring certain options for some reason).
-edit- Although I suspect that the issue may be since this is a folder and not a file, I am not aware of a setting for “exclude-folder-attributes”, although the settings should cover both folders and files… -end edit-

For example on one of the mapped network drives I have Duplicati set to backup, there is the folder “System Volume Information” which is System, Hidden, and ReadOnly. I have exclude-files-attributes (under Settings so it is supposed to use it for all backups) set to “Hidden, System, Temporary” yet every day the warnings/errors still pop up:

Warnings:
[
2018-06-05 19:12:12 -05 - [Warning-Duplicati.Library.Main.Operation.FilterHandler-FileAccessError]: Error reported while accessing file: T:\System Volume Information,
2018-06-05 19:12:13 -05 - [Warning-Duplicati.Library.Main.Operation.FilterHandler-FileAccessError]: Error reported while accessing file: T:\System Volume Information,
2018-06-05 19:18:33 -05 - [Warning-Duplicati.Library.Main.Operation.FilterHandler-FileAccessError]: Error reported while accessing file: T:\System Volume Information,
2018-06-05 19:18:33 -05 - [Warning-Duplicati.Library.Main.Operation.FilterHandler-FileAccessError]: Error reported while accessing file: T:\System Volume Information\
]

the full log shows:

2018-06-05 19:12:12 -05 - [Warning-Duplicati.Library.Main.Operation.FilterHandler-FileAccessError]: Error reported while accessing file: T:\System Volume Information
System.UnauthorizedAccessException: Access to the path ‘T:\System Volume Information’ is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator1.CommonInit() at System.IO.FileSystemEnumerableIterator1…ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption, Boolean checkHost)
at System.IO.Directory.InternalGetDirectories(String path, String searchPattern, SearchOption searchOption)
at Duplicati.Library.Snapshots.NoSnapshotWindows.ListFolders(String folder)
at Duplicati.Library.Utility.Utility.d__23.MoveNext()

This screenshot is taken from the server where the drive is hosted (and set with J:) so the Drive letter is different than the above logs (where the network share has it set as T: ). The properties are the same between both, it is seen as Hidden and Read Only even under the mapped network drive.

SVIProp

Just out of curiosity, are you using any “Exclude filter group” settings such as “Default excludes”?

Using the test-filter Command from the GUI on 2.0.3.6 it looks like things work as expected… Unfortunately, I don’t currently have a 2.0.3.5 version to on.


Results with ONLY --exclude-files-attributes=ReadOnly,Hidden,System

Including source path: E:\
Excluding path due to attribute filter: E:\$RECYCLE.BIN\
---- > Excluding path due to attribute filter: E:\System Volume Information\
Including path as no filters matched: E:\DuplicatiHelp.bat
Including path as no filters matched: E:\DuplicatiHelp.txt
Including path as no filters matched: E:\Minio\.minio.sys\
Including path as no filters matched: E:\Minio\duplicati\
Including path as no filters matched: E:\Minio\.minio.sys\multipart\
Including path as no filters matched: E:\Minio\.minio.sys\tmp\
Including path as no filters matched: E:\Minio\.minio.sys\format.json
Matched 3 files (93.49 KB)
Return code: 0

Results with ONLY --exclude={DefaultExcludes}

Including source path: E:\
Excluding path due to filter: E:\$RECYCLE.BIN\ => ({DefaultExcludes})
Including path as no filters matched: E:\Minio\
---- > Excluding path due to filter: E:\System Volume Information\ => ({DefaultExcludes})
Including path as no filters matched: E:\DuplicatiHelp.bat
Including path as no filters matched: E:\DuplicatiHelp.txt
Including path as no filters matched: E:\Minio\.minio.sys\
Including path as no filters matched: E:\Minio\duplicati\
Including path as no filters matched: E:\Minio\.minio.sys\multipart\
Including path as no filters matched: E:\Minio\.minio.sys\tmp\
Including path as no filters matched: E:\Minio\.minio.sys\format.json
Matched 6 files (171.54 MB)
Return code: 0

I honestly do not know what defaults it is using since it is a standard Windows install with 2.0.3.5, but I will do some digging.

edit: I checked the logs today, several days after adding that exclude entry, and the last batch of backups that ran last night did finally use that exclude entry. So then that begs the question, why did it take several runs/several days before it finally used the setting?

The only thing I can think of is that there was a run still using the old settings queued up that kicked in before any runs with the new setting… but that doesn’t really sound very likely to me.

So honestly, I don’t know why that would be the case. It might be interested to check again in a few runs and see if the “fall off” again so you end up with some runs including the folders and others not.