[transaction] if error on rollbacking a source, replace the connection by a new one stable
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Thu, 15 Jul 2010 12:03:13 +0200
branchstable
changeset 5976 00b1b6b906cf
parent 5975 5120d97e2f7e
child 5982 30985571dbc9
child 5993 50e1a6ad3e98
child 5994 97c55baefa0c
[transaction] if error on rollbacking a source, replace the connection by a new one
server/pool.py
--- a/server/pool.py	Thu Jul 15 11:38:31 2010 +0200
+++ b/server/pool.py	Thu Jul 15 12:03:13 2010 +0200
@@ -67,6 +67,9 @@
                 cnx.rollback()
             except:
                 source.critical('rollback error', exc_info=sys.exc_info())
+                # error on rollback, the connection is much probably in a really
+                # bad state. Replace it by a new one.
+                self.reconnect(source)
 
     def close(self, i_know_what_i_do=False):
         """close all connections in the pool"""