# HG changeset patch # User Sylvain Thénault # Date 1279186711 -7200 # Node ID 5120d97e2f7ee65cfc3f4fced749c24df3ac8066 # Parent 9bfa823735e0e04642687f8bc659d1ad2fa731a7 [transaction] do not attempt to reconnect if there has been some write during the transaction diff -r 9bfa823735e0 -r 5120d97e2f7e server/sources/native.py --- a/server/sources/native.py Mon Jul 12 12:28:19 2010 +0200 +++ b/server/sources/native.py Thu Jul 15 11:38:31 2010 +0200 @@ -451,13 +451,17 @@ try: cursor = self.doexec(session, sql, args) except (self.OperationalError, self.InterfaceError): + if session.mode == 'write': + # do not attempt to reconnect if there has been some write + # during the transaction + raise # FIXME: better detection of deconnection pb self.warning("trying to reconnect") session.pool.reconnect(self) cursor = self.doexec(session, sql, args) except (self.DbapiError,), exc: # We get this one with pyodbc and SQL Server when connection was reset - if exc.args[0] == '08S01': + if exc.args[0] == '08S01' and session.mode != 'write': self.warning("trying to reconnect") session.pool.reconnect(self) cursor = self.doexec(session, sql, args)