From 7fec42c12f7d3db0e057d7dfe90f49aa4c8c5782 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Thu, 26 May 2016 12:01:28 +0200 Subject: [PATCH 1/2] Remove password from backup connection string It's written into pgpass file anyway and ENV variable is set. --- patroni/postgresql.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/patroni/postgresql.py b/patroni/postgresql.py index 060932c7..73ae7827 100644 --- a/patroni/postgresql.py +++ b/patroni/postgresql.py @@ -272,9 +272,10 @@ class Postgresql(object): replica_methods = self.config.get('create_replica_method') or ['basebackup'] if clone_member: - connstring = clone_member.conn_url + r = parseurl(clone_member.conn_url) + connstring = 'postgres://{user}@{host}:{port}/{database}'.format(**r) # add the credentials to connect to the replica origin to pgpass. - env = self.write_pgpass(parseurl(clone_member.conn_url)) + env = self.write_pgpass(r) else: connstring = '' env = os.environ.copy() From dd70a3f3252aa3940dbf4b138ea8441d9dc35422 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Mon, 30 May 2016 11:06:16 +0200 Subject: [PATCH 2/2] BUGFIX: demote is already running in a thread It should not call `recover` but `state_handler.follow` directly (like it is already done in the `clone`). Otherwise it tries to create a new thread and all async functionality became borken... --- patroni/ha.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/patroni/ha.py b/patroni/ha.py index 1d51c93f..b12aa856 100644 --- a/patroni/ha.py +++ b/patroni/ha.py @@ -276,7 +276,9 @@ class Ha(object): self.touch_member() self.dcs.reset_cluster() sleep(2) # Give a time to somebody to promote - self.recover() + cluster = self.dcs.get_cluster() + node_to_follow = self._get_node_to_follow(cluster) + self.state_handler.follow(node_to_follow, cluster.leader, True) else: self.state_handler.follow(None, None)