diff options
| author | Petter Rasmussen | 2016-02-07 22:14:23 +0100 | 
|---|---|---|
| committer | Petter Rasmussen | 2016-02-07 22:14:23 +0100 | 
| commit | 23919aa1adfc693b45a292c449418ee78d744df0 (patch) | |
| tree | 69ca3ce570db110dad031a30f94fca3056cb5706 /drive | |
| parent | b56ee90075d3b073bd87e5527528b62f85ef031e (diff) | |
| download | gdrive-23919aa1adfc693b45a292c449418ee78d744df0.tar.bz2 | |
Retry delete file on backend error
Diffstat (limited to 'drive')
| -rw-r--r-- | drive/sync_upload.go | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/drive/sync_upload.go b/drive/sync_upload.go index 15a0327..f5bc48b 100644 --- a/drive/sync_upload.go +++ b/drive/sync_upload.go @@ -236,7 +236,7 @@ func (self *Drive) deleteExtraneousRemoteFiles(files *syncFiles, args UploadSync              continue          } -        err := self.deleteRemoteFile(rf, args) +        err := self.deleteRemoteFile(rf, args, 0)          if err != nil {              return err          } @@ -339,10 +339,16 @@ func (self *Drive) updateChangedFile(cf *changedFile, args UploadSyncArgs, try i      return nil  } -func (self *Drive) deleteRemoteFile(rf *RemoteFile, args UploadSyncArgs) error { +func (self *Drive) deleteRemoteFile(rf *RemoteFile, args UploadSyncArgs, try int) error {      err := self.service.Files.Delete(rf.file.Id).Do()      if err != nil { -        return fmt.Errorf("Failed to delete file: %s", err) +        if isBackendError(err) && try < MaxBackendErrorRetries { +            exponentialBackoffSleep(try) +            try++ +            self.deleteRemoteFile(rf, args, try) +        } else { +            return fmt.Errorf("Failed to delete file: %s", err) +        }      }      return nil | 
