diff --git a/patroni/ha.py b/patroni/ha.py index 28f7b696..fa873977 100644 --- a/patroni/ha.py +++ b/patroni/ha.py @@ -346,6 +346,9 @@ class Ha(object): self.dcs.manual_failover('', '', index=self.cluster.failover.index) def process_unhealthy_cluster(self): + if self.is_paused(): + return "No action due to paused state" + if self.is_healthiest_node(): if self.acquire_lock(): if self.cluster.failover: diff --git a/patroni/postgresql.py b/patroni/postgresql.py index df2279f1..31f45148 100644 --- a/patroni/postgresql.py +++ b/patroni/postgresql.py @@ -900,7 +900,7 @@ $$""".format(name, ' '.join(options)), name, password, password) for slot in set(self._replication_slots) - set(slots): self.query("""SELECT pg_drop_replication_slot(%s) WHERE EXISTS(SELECT 1 FROM pg_replication_slots - WHERE slot_name = %s)""", slot, slot) + WHERE slot_name = %s AND NOT active)""", slot, slot) # create new slots for slot in set(slots) - set(self._replication_slots):