Restart etcd3 watcher if all etcd nodes don't respond (#2186)

Close https://github.com/zalando/patroni/issues/2180
This commit is contained in:
Alexander Kukushkin
2022-02-10 15:32:29 +01:00
committed by GitHub
parent 04c6f58b2b
commit cdc80a1d89
+4 -2
View File
@@ -269,6 +269,7 @@ class AbstractEtcdClientWithFailover(etcd.Client):
nodes, timeout, retries = self._calculate_timeouts(etcd_nodes, remaining_time)
if nodes == 0:
self._update_machines_cache = True
self.set_base_uri(self._base_uri) # trigger Etcd3 watcher restart
raise ex
retry.sleep_func(sleeptime)
retry.update_delay()
@@ -394,8 +395,9 @@ class AbstractEtcdClientWithFailover(etcd.Client):
self._machines_cache_updated = time.time()
def set_base_uri(self, value):
logger.info('Selected new etcd server %s', value)
self._base_uri = value
if self._base_uri != value:
logger.info('Selected new etcd server %s', value)
self._base_uri = value
class EtcdClient(AbstractEtcdClientWithFailover):