From c45caae8ce8dfc12ddcbc9710e1757362e0633a6 Mon Sep 17 00:00:00 2001 From: Ilya Skriblovsky Date: Tue, 13 Mar 2018 16:03:57 +0300 Subject: [PATCH] distinct AutoReconnect instances --- docs/source/NEWS.rst | 1 + txmongo/protocol.py | 6 ++---- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/source/NEWS.rst b/docs/source/NEWS.rst index 6c785e9..f8c6bf6 100644 --- a/docs/source/NEWS.rst +++ b/docs/source/NEWS.rst @@ -11,6 +11,7 @@ Bugfixes ^^^^^^^^ - Fixed compatibility of `Collection.aggregate()` with PyMongo 3.6 +- AutoReconnect exceptions may give invalid stack traces when not handled Release 18.0.0 (2018-01-02) diff --git a/txmongo/protocol.py b/txmongo/protocol.py index 4a43aba..8c0c078 100644 --- a/txmongo/protocol.py +++ b/txmongo/protocol.py @@ -323,16 +323,14 @@ def connectionLost(self, reason=connectionDone): # too late. self.factory.setInstance(None, reason) - auto_reconnect = AutoReconnect("TxMongo lost connection to MongoDB.") - if self.__deferreds: deferreds, self.__deferreds = self.__deferreds, {} for df in deferreds.values(): - df.errback(auto_reconnect) + df.errback(AutoReconnect("TxMongo lost connection to MongoDB.")) deferreds, self.__connection_ready = self.__connection_ready, [] if deferreds: for df in deferreds: - df.errback(auto_reconnect) + df.errback(AutoReconnect("TxMongo lost connection to MongoDB.")) protocol.Protocol.connectionLost(self, reason)