diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/changes/bug_5518_close-all-connections-after-sync | 1 | ||||
-rw-r--r-- | client/src/leap/soledad/client/__init__.py | 1 | ||||
-rw-r--r-- | client/src/leap/soledad/client/sqlcipher.py | 1 | ||||
-rw-r--r-- | client/src/leap/soledad/client/sync.py | 2 | ||||
-rw-r--r-- | client/src/leap/soledad/client/target.py | 3 |
5 files changed, 6 insertions, 2 deletions
diff --git a/client/changes/bug_5518_close-all-connections-after-sync b/client/changes/bug_5518_close-all-connections-after-sync new file mode 100644 index 00000000..46d679a6 --- /dev/null +++ b/client/changes/bug_5518_close-all-connections-after-sync @@ -0,0 +1 @@ + o Close all connections after syncing (#5518). diff --git a/client/src/leap/soledad/client/__init__.py b/client/src/leap/soledad/client/__init__.py index 3dbba9b6..586e3389 100644 --- a/client/src/leap/soledad/client/__init__.py +++ b/client/src/leap/soledad/client/__init__.py @@ -407,6 +407,7 @@ class Soledad(object): # release the lock on shared db try: self._shared_db.unlock(token) + self._shared_db.close() except NotLockedError: # for some reason the lock expired. Despite that, secret # loading or generation/storage must have been executed diff --git a/client/src/leap/soledad/client/sqlcipher.py b/client/src/leap/soledad/client/sqlcipher.py index 6f32ee76..2df9606e 100644 --- a/client/src/leap/soledad/client/sqlcipher.py +++ b/client/src/leap/soledad/client/sqlcipher.py @@ -482,7 +482,6 @@ class SQLCipherDatabase(sqlite_backend.SQLitePartialExpandDatabase): with SQLCipherDatabase.syncing_lock[self._get_replica_uid()]: syncer = self._get_syncer(url, creds=creds) yield syncer - #syncer.sync_target.close() @property def syncing(self): diff --git a/client/src/leap/soledad/client/sync.py b/client/src/leap/soledad/client/sync.py index 3d728742..be60d0ab 100644 --- a/client/src/leap/soledad/client/sync.py +++ b/client/src/leap/soledad/client/sync.py @@ -206,6 +206,8 @@ class SoledadSynchronizer(Synchronizer): except Exception as e: logger.error("Soledad sync error: %s" % str(e)) sync_target.stop() + finally: + sync_target.close() return my_gen diff --git a/client/src/leap/soledad/client/target.py b/client/src/leap/soledad/client/target.py index 48472c53..6d8ecfeb 100644 --- a/client/src/leap/soledad/client/target.py +++ b/client/src/leap/soledad/client/target.py @@ -833,6 +833,7 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth): self._sync_watcher.shutdown() if self._sync_decr_pool is not None: self._sync_decr_pool.close() + HTTPSyncTarget.close(self) @staticmethod def connect(url, source_replica_uid=None, crypto=None): @@ -1237,6 +1238,7 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth): last_known_generation, last_known_trans_id, headers, return_doc_cb, ensure_callback, sync_id, syncer_pool, defer_decryption=defer_decryption) + syncer_pool.cleanup() # delete documents from the sync database if defer_encryption: @@ -1249,7 +1251,6 @@ class SoledadSyncTarget(HTTPSyncTarget, TokenBasedAuth): self._sync_exchange_lock.release() self._sync_watcher.stop() - syncer_pool.cleanup() self.stop() return cur_target_gen, cur_target_trans_id |