mirror of
https://github.com/rclone/rclone.git
synced 2024-11-22 16:34:30 +01:00
local: fix partial directory read for corrupted filesystem
Before this change if a directory entry could be listed but not lstat-ed then rclone would give an error and abort the directory listing with the error failed to read directory entry: failed to read directory "XXX": lstat XXX This change makes sure that the directory listing carries on even after this kind of error. The sync will be failed but it will carry on. This problem was caused by a programming error setting the err variable in an outer scope when it should have been using a local err variable. See: https://forum.rclone.org/t/sync-aborts-if-even-one-single-unreadable-folder-is-encountered/39653
This commit is contained in:
parent
473d443874
commit
7d31956169
@ -516,7 +516,7 @@ func (f *Fs) List(ctx context.Context, dir string) (entries fs.DirEntries, err e
|
||||
continue
|
||||
}
|
||||
}
|
||||
err = fmt.Errorf("failed to read directory %q: %w", namepath, fierr)
|
||||
fierr = fmt.Errorf("failed to get info about directory entry %q: %w", namepath, fierr)
|
||||
fs.Errorf(dir, "%v", fierr)
|
||||
_ = accounting.Stats(ctx).Error(fserrors.NoRetryError(fierr)) // fail the sync
|
||||
continue
|
||||
|
Loading…
Reference in New Issue
Block a user