From 4830e36e2b1002daa4c182ed1b4c07882268bbe5 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Thu, 20 Jul 2023 13:23:55 +0200 Subject: [PATCH] Start primary back when it crashed with "in crash recovery" state (#2763) If one of backends crashed postmaster stops all backend and does crash recovery because shared memory could be corrupted. If something happens during this phase postgres may completely crash leaving pg_control with "in crash recovery" state. Followup on #2726 --- patroni/ha.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/patroni/ha.py b/patroni/ha.py index 1148802a..f704500e 100644 --- a/patroni/ha.py +++ b/patroni/ha.py @@ -473,7 +473,8 @@ class Ha(object): # timeout > 0 indicates that we still have the leader lock, and it was just updated if timeout\ - and data.get('Database cluster state') in ('in production', 'shutting down', 'shut down')\ + and data.get('Database cluster state') in ('in production', 'in crash recovery', + 'shutting down', 'shut down')\ and self.state_handler.state == 'crashed'\ and self.state_handler.role in ('primary', 'master')\ and not self.state_handler.config.recovery_conf_exists():