From 242e21dff3260a2dba303299e41667679e6d2e87 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Thu, 6 Aug 2015 12:59:30 -0300 Subject: [bug] close http_target when soledad closes Soledad has a close method that wasn't calling http_target close. The reference to sync exchange was being deleted without proper closing of underlying resources. --- client/src/leap/soledad/client/api.py | 3 ++- client/src/leap/soledad/client/sqlcipher.py | 1 + client/src/leap/soledad/client/sync.py | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) (limited to 'client/src/leap') diff --git a/client/src/leap/soledad/client/api.py b/client/src/leap/soledad/client/api.py index 1be3adac..5ba93721 100644 --- a/client/src/leap/soledad/client/api.py +++ b/client/src/leap/soledad/client/api.py @@ -301,7 +301,8 @@ class Soledad(object): if getattr(self, '_dbsyncer', None): self._dbsyncer.close() # close the sync database - self._sync_db.close() + if self._sync_db: + self._sync_db.close() self._sync_db = None if self._defer_encryption: self._sync_enc_pool.stop() diff --git a/client/src/leap/soledad/client/sqlcipher.py b/client/src/leap/soledad/client/sqlcipher.py index 34fd90b4..a76a35b7 100644 --- a/client/src/leap/soledad/client/sqlcipher.py +++ b/client/src/leap/soledad/client/sqlcipher.py @@ -633,6 +633,7 @@ class SQLCipherU1DBSync(SQLCipherDatabase): """ # close all open syncers for url in self._syncers.keys(): + self._syncers[url][1].close() del self._syncers[url] diff --git a/client/src/leap/soledad/client/sync.py b/client/src/leap/soledad/client/sync.py index 77abd868..1a881555 100644 --- a/client/src/leap/soledad/client/sync.py +++ b/client/src/leap/soledad/client/sync.py @@ -184,6 +184,9 @@ class SoledadSynchronizer(Synchronizer): # if gapless record current reached generation with target return self._record_sync_info_with_the_target(info["my_gen"]) + def close(self): + self.sync_target.close() + def _record_sync_info_with_the_target(self, start_generation): """ Store local replica metadata in server. -- cgit v1.2.3