dropbox: make malformed_path errors from too long files not retriable

Before this change, rclone would retry files with filenames that were
too long again and again.

This changed recognises the malformed_path error that is returned and
marks it not to be retried which stops unnecessary retrying of the file.

See #4805
This commit is contained in:
Nick Craig-Wood 2020-11-26 12:10:46 +00:00
parent f6b1f05e0f
commit a9585efd64

View file

@ -254,9 +254,11 @@ func shouldRetry(err error) (bool, error) {
return false, err return false, err
} }
baseErrString := errors.Cause(err).Error() baseErrString := errors.Cause(err).Error()
// First check for Insufficient Space // First check for specific errors
if strings.Contains(baseErrString, "insufficient_space") { if strings.Contains(baseErrString, "insufficient_space") {
return false, fserrors.FatalError(err) return false, fserrors.FatalError(err)
} else if strings.Contains(baseErrString, "malformed_path") {
return false, fserrors.NoRetryError(err)
} }
// Then handle any official Retry-After header from Dropbox's SDK // Then handle any official Retry-After header from Dropbox's SDK
switch e := err.(type) { switch e := err.(type) {