duplicati / duplicati

Store securely encrypted backups in the cloud!
Other
11.13k stars 904 forks source link

UnrecognizedReparsePointException #1727

Open xarly opened 8 years ago

xarly commented 8 years ago

(Using Windows) I'm just downloaded duplicati for first time to backup some folders of a Volume wich as snapshots already enabled. Snapshots are made to other disk, (let say S: uses V: as shadow copies storage).

Backups are sent to Google Drive, jobs are succesfully uploaded but I'm getting this error in thousands of files in all backups jobs:

Alphaleonis.Win32.Filesystem.UnrecognizedReparsePointException: I/O Error. en Alphaleonis.Win32.Filesystem.DeviceIo.GetLinkTargetInfo(SafeHandle device) en Alphaleonis.Win32.Filesystem.File.GetLinkTargetInfo(String sourceFile) en Duplicati.Library.Snapshots.NoSnapshotWindows.GetSymlinkTarget(String file) en Duplicati.Library.Main.Operation.BackupHandler.HandleFilesystemEntry(ISnapshotService snapshot, BackendManager backend, String path, FileAttributes attributes)

xarly commented 8 years ago

I have tried run the backup from other server using UNC paths, getting this errors instead, with the same files

A file path example would be Failed to process path: \\server.fqdn.local\P$\MyFolder\01. DataFiles\Historic\00 - Example.txt

System.IO.FileNotFoundException: The filename, directory name, or volume label syntax is incorrect. (Exception HRESULT: 0x8007007B) en Alphaleonis.Win32.NativeError.ThrowException(UInt32 errorCode, String readPath, String writePath) en Alphaleonis.Win32.Filesystem.File.GetLinkTargetInfo(String sourceFile) en Duplicati.Library.Snapshots.NoSnapshotWindows.GetSymlinkTarget(String file) en Duplicati.Library.Main.Operation.BackupHandler.HandleFilesystemEntry(ISnapshotService snapshot, BackendManager backend, String path, FileAttributes attributes)

xarly commented 8 years ago

Could be a problem with symbols or spaces in path?

kenkendk commented 8 years ago

I have not seen a path with a $ sign before, so maybe that is it?

xarly commented 8 years ago

The $ in SMB/CIFS URIs means that the share is hidden, and won't be displayed when browsing shared folders. They are commonly called Administrative Shares

Is Windows native. For example, by default, all drives are shared administratively with C$ D$ etc when volumes are created.

https://en.wikipedia.org/wiki/Administrative_share

xarly commented 8 years ago

I doubt $ causes the error because first I tried locally in the server storing the files, accesing with local path

kenkendk commented 8 years ago

Yes, now I remember. It is the Windows hack :).

Can you see any similarity in the paths?

Trawling through the source, I can see that the file attributes indicates that the file is a reparsepoint, but then it fails to extract the symlink target, which gives you the error message.

I assume that the file is not a symlink, but has a "reparsepoint" attribute.

If you are not using symlinks, you can work around the problem by setting --symlink-policy=ignore.

I cannot see a way to extract the ReparsePointTag, which would reveal if the file is not a symlink, but something else. I will make the error silent as the exception is only thrown if the file is not a symlink, and there is nothing to handle such a reparse point.

xarly commented 8 years ago

I have set that option and errors have dissapear, but many many files are not been backed up. probably all those files affected by symlink policy :(

xarly commented 8 years ago

Exactly what you said, If I scan volume for files with reparsepoint

(Dir S:\MyFolder -Force -Recurse -ErrorAction 'silentlycontinue' | Where { $_.Attributes -match "ReparsePoint"} | Measure-Object).Count

I get the same number that Duplicate gave as error. What I don't understand is why those files has that attribute!

xarly commented 8 years ago

I think it comes because I have deduplication enabled in windows server, but I cannot disable it, i need it...

kenkendk commented 8 years ago

Yes, that would explain it. If there is deduplication the files are tagged as deduplicated which sets the reparsepoint attribute.

I have fixed the suppresion of the error message, and it will be part of the next canary build.

xarly commented 8 years ago

I'm afraid it still throwing errors and not backing up those files :(

nfp0 commented 7 years ago

This is still happening to me too. I'm on 2.0.1.61_experimental_2017-05-30 on Windows 10 and it happens specifically on this file, which I assume is part of the Windows installation:

Failed to process path: C:\Users\MyUsername\AppData\Local\Packages\Microsoft.Microsoft3DViewer_8wekyb3d8bbwe\LocalCache\ Alphaleonis.Win32.Filesystem.UnrecognizedReparsePointException: I/O error occurred.

kenkendk commented 7 years ago

More details on this error: https://forum.duplicati.com/t/unexpected-number-of-remote-volumes-detected-0-error/406/15

joyrider3774 commented 7 years ago

guys i've been having the same error message. I recently updated to Duplicati - 2.0.1.73_experimental_2017-07-15 as well as update my windows 10 with the october fall creators update. My system is set up so that my pictures, my documents are all relocated to the one drive folder so that it automatically uploads any new image or document to my one drive as well. I know there's a new onedrive version with the fall creators update so i'm not certain if that's causing it.

i got hundreds of errors like that here's an example:

Failed to process path: C:\Users\joyri\OneDrive\Documenten\process1.jpg Alphaleonis.Win32.Filesystem.UnrecognizedReparsePointException: I/O error occurred. at Alphaleonis.Win32.Filesystem.Device.GetLinkTargetInfoCore(SafeFileHandle safeHandle) at Alphaleonis.Win32.Filesystem.File.GetLinkTargetInfoCore(KernelTransaction transaction, String path, PathFormat pathFormat) at Duplicati.Library.Snapshots.WindowsSnapshot.GetSymlinkTarget(String file) at Duplicati.Library.Main.Operation.BackupHandler.HandleFilesystemEntry(ISnapshotService snapshot, BackendManager backend, String path, FileAttributes attributes)