]> 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:44:43 +0000 (23:44 +0200)
psycopg/psycopg/connection.py
psycopg/psycopg/connection_async.py

index 41f5c2920fb80264b725e413eff65085b5336f00..4c610bf3f23692f3718f4ba402ce8f064b565d8a 100644 (file)
@@ -916,7 +916,10 @@ class Connection(BaseConnection[Row]):
         """
         while True:
             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 38a0cb306b4c2c113d4ccbfa083f2457ab183b29..ae8715da1408f0f3ae2531dd37d9d55f38d05180 100644 (file)
@@ -303,7 +303,10 @@ class AsyncConnection(BaseConnection[Row]):
     async def notifies(self) -> AsyncGenerator[Notify, None]:
         while True:
             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)