From 92b17aadd28d0a80f9278d55b03ea6e60feb6040 Mon Sep 17 00:00:00 2001 From: Julien Castiaux Date: Wed, 19 Feb 2020 13:06:12 +0000 Subject: [PATCH] [FIX] sql_db: remove unused __closer The `__closer` attribute is filled with the origin of a call to `cr.close()`. That information is reused in the `check` decotator that ensure the user is not using a closed cursor. In case he is using a closed cursor, an error is raised with that optional origin in case of `--log-sql`. The attribute is a dundler so it is only accessible within its class, as the decorator has been moved outside of the class by 058cf208a8e7 it is not directly accessible thus `__getattr__` is called as a fallback. The `__getattr__` itself is protected by the `check` decorator thus they call each other in a infinite recursion. As the related dundler is no more used internally, it has been decided to remove it entirely. closes odoo/odoo#47616 Task: 2199895 X-original-commit: 3ebf7cb9cca37b05f44aaffc0b1f289cc65f300f Signed-off-by: Julien Castiaux --- odoo/sql_db.py | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/odoo/sql_db.py b/odoo/sql_db.py index 516eb175633..298bc9f1975 100644 --- a/odoo/sql_db.py +++ b/odoo/sql_db.py @@ -86,10 +86,7 @@ sql_counter = 0 def check(f, self, *args, **kwargs): """ Wrap a cursor method that cannot be called when the cursor is closed. """ if self._closed: - msg = 'Unable to use a closed cursor.' - if self.__closer: - msg += ' It was closed at %s, line %s' % self.__closer - raise psycopg2.OperationalError(msg) + raise psycopg2.OperationalError('Unable to use a closed cursor.') return f(self, *args, **kwargs) @@ -248,7 +245,6 @@ class Cursor(BaseCursor): self.__caller = False self._closed = False # real initialisation value self.autocommit(False) - self.__closer = False self._default_log_exceptions = True @@ -362,9 +358,6 @@ class Cursor(BaseCursor): del self.cache - if self.sql_log: - self.__closer = frame_codeinfo(currentframe(), 3) - # simple query count is always computed sql_counter += self.sql_log_count