diff --git a/pandaharvester/harvestercore/db_proxy.py b/pandaharvester/harvestercore/db_proxy.py index c0378a7f..41c57cc5 100644 --- a/pandaharvester/harvestercore/db_proxy.py +++ b/pandaharvester/harvestercore/db_proxy.py @@ -334,11 +334,12 @@ def commit(self): if harvester_config.db.verbose: self.verbLog.debug(f"thr={self.thrName} exception during commit") raise - if self.usingAppLock and self.lockDB: - if harvester_config.db.verbose: - self.verbLog.debug(f"thr={self.thrName} release with commit") - conLock.release() - self.lockDB = False + finally: + if self.usingAppLock and self.lockDB: + if harvester_config.db.verbose: + self.verbLog.debug(f"thr={self.thrName} release with commit") + conLock.release() + self.lockDB = False # rollback def rollback(self): diff --git a/pandaharvester/harvestercore/db_proxy_pool.py b/pandaharvester/harvestercore/db_proxy_pool.py index 73cdde91..21e964fc 100644 --- a/pandaharvester/harvestercore/db_proxy_pool.py +++ b/pandaharvester/harvestercore/db_proxy_pool.py @@ -22,6 +22,7 @@ def __init__(self, method_name, pool): def __call__(self, *args, **kwargs): tmpLog = core_utils.make_logger(_logger, f"method={self.methodName}", method_name="call") sw = core_utils.get_stopwatch() + con = None try: # get connection con = self.pool.get() @@ -32,8 +33,9 @@ def __call__(self, *args, **kwargs): # exec return func(*args, **kwargs) finally: - tmpLog.debug("release lock" + sw.get_elapsed_time()) - self.pool.put(con) + if con is not None: + tmpLog.debug("release lock" + sw.get_elapsed_time()) + self.pool.put(con) # connection class