From 256a359a1ecd60ae7b81e1ac6524e1c85d2e78bd Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Fri, 19 Nov 2021 16:29:39 +0100 Subject: [PATCH] Fix a litle bug around psycopg 3.0 (#2123) Cursor.execute now returns cursor itself, while in psycopg2 it was returning None --- patroni/postgresql/__init__.py | 2 +- patroni/postgresql/rewind.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/patroni/postgresql/__init__.py b/patroni/postgresql/__init__.py index 0061f52f..07d05a11 100644 --- a/patroni/postgresql/__init__.py +++ b/patroni/postgresql/__init__.py @@ -598,7 +598,7 @@ class Postgresql(object): cur.execute('SELECT pg_catalog.pg_is_in_recovery()') if cur.fetchone()[0]: return 'is_in_recovery=true' - return cur.execute('CHECKPOINT') + cur.execute('CHECKPOINT') except psycopg.Error: logger.exception('Exception during CHECKPOINT') return 'not accessible or not healty' diff --git a/patroni/postgresql/rewind.py b/patroni/postgresql/rewind.py index 9fd7cc3b..61b3b88c 100644 --- a/patroni/postgresql/rewind.py +++ b/patroni/postgresql/rewind.py @@ -230,8 +230,9 @@ class Rewind(object): with self._checkpoint_task_lock: if self._checkpoint_task: with self._checkpoint_task: - if self._checkpoint_task.result: + if self._checkpoint_task.result is not None: self._state = REWIND_STATUS.CHECKPOINT + self._checkpoint_task = None elif self._postgresql.get_master_timeline() == self._postgresql.pg_control_timeline(): self._state = REWIND_STATUS.CHECKPOINT else: