]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
fix: raise a shorter trackeback on interrupted notify connection
authorDaniele Varrazzo <daniele.varrazzo@gmail.com>
Wed, 18 May 2022 20:45:48 +0000 (22:45 +0200)
committerDaniele Varrazzo <daniele.varrazzo@gmail.com>
Thu, 19 May 2022 21:47:08 +0000 (23:47 +0200)
psycopg/psycopg/connection.py
psycopg/psycopg/connection_async.py

index 7cb36aeac801f938db35798d78a1ba52440a0856..4526b22faa6e8a302e5a1dbc1f5ac72d0f7dbe3a 100644 (file)
@@ -759,7 +759,10 @@ class Connection(BaseConnection[Row]):
         """
         while 1:
             with self.lock:
-                ns = self.wait(notifies(self.pgconn))
+                try:
+                    ns = self.wait(notifies(self.pgconn))
+                except e.Error as ex:
+                    raise ex.with_traceback(None)
             enc = pgconn_encoding(self.pgconn)
             for pgn in ns:
                 n = Notify(pgn.relname.decode(enc), pgn.extra.decode(enc), pgn.be_pid)
index 22e86b53d1c6e36fdbd84d32888aa201f5f9ad87..4402d100c8515b10cfd722db2a3511b996b511eb 100644 (file)
@@ -281,7 +281,10 @@ class AsyncConnection(BaseConnection[Row]):
     async def notifies(self) -> AsyncGenerator[Notify, None]:
         while 1:
             async with self.lock:
-                ns = await self.wait(notifies(self.pgconn))
+                try:
+                    ns = await self.wait(notifies(self.pgconn))
+                except e.Error as ex:
+                    raise ex.with_traceback(None)
             enc = pgconn_encoding(self.pgconn)
             for pgn in ns:
                 n = Notify(pgn.relname.decode(enc), pgn.extra.decode(enc), pgn.be_pid)