diff options
author | Victor Shyba <victor1984@riseup.net> | 2017-10-27 19:39:25 -0300 |
---|---|---|
committer | Victor Shyba <victor1984@riseup.net> | 2017-10-27 19:49:28 -0300 |
commit | 72956174187fa2fccbb060d04d4809797657e029 (patch) | |
tree | 658177e6bb96bce4d91b9901d032bda0fae2e195 /src/leap/soledad/client/_db/blobs/sync.py | |
parent | f4ab4e15ba2fd6eb06bcd71e8fe04abc903d4ff0 (diff) |
[bug] there is no retry limit for usual transfers
Retry limit was originally specified in #8825 as a protection mechanism,
but #8822 (retry) doesn't specify a retry limit. In fact, blobs is
supposed to retry until transfer is complete using timed delays between
attempts, but never giving up.
-- Related: #8822
-- Related: #8825
Diffstat (limited to 'src/leap/soledad/client/_db/blobs/sync.py')
-rw-r--r-- | src/leap/soledad/client/_db/blobs/sync.py | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/src/leap/soledad/client/_db/blobs/sync.py b/src/leap/soledad/client/_db/blobs/sync.py index a1b5cc4c..ee10443d 100644 --- a/src/leap/soledad/client/_db/blobs/sync.py +++ b/src/leap/soledad/client/_db/blobs/sync.py @@ -22,7 +22,7 @@ from twisted.internet import reactor from twisted.logger import Logger from twisted.internet import error from .sql import SyncStatus -from .errors import MaximumRetriesError, RetriableTransferError +from .errors import RetriableTransferError logger = Logger() @@ -90,18 +90,8 @@ class BlobsSynchronizer(object): logger.info("Sending blob to server (%d/%d): %s" % (i, total, blob_id)) fd = yield self.local.get(blob_id, namespace=namespace) - try: - yield self._encrypt_and_upload(blob_id, fd) - yield self.local.update_sync_status(blob_id, SyncStatus.SYNCED) - except Exception as e: - yield self.local.increment_retries(blob_id) - res = yield self.local.get_sync_status(blob_id) - _, retries = res - if (retries + 1) > self.max_retries: - failed_upload = SyncStatus.FAILED_UPLOAD - yield self.local.update_sync_status(blob_id, failed_upload) - raise MaximumRetriesError(e) - raise e + yield self._encrypt_and_upload(blob_id, fd) + yield self.local.update_sync_status(blob_id, SyncStatus.SYNCED) @defer.inlineCallbacks def fetch_missing(self, namespace=''): |