From 2dce518a243c4006c75ae7210e2e33e0283ec794 Mon Sep 17 00:00:00 2001 From: Seebs Date: Wed, 19 Jan 2022 14:44:47 -0600 Subject: [PATCH] retry other etcd ErrTimeout variants etcd can return more detailed ErrTimeout variants in rare cases, and we want to retry on those too. --- etcd/embed.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/etcd/embed.go b/etcd/embed.go index db3bc34ea..a7f1ba073 100644 --- a/etcd/embed.go +++ b/etcd/embed.go @@ -210,7 +210,7 @@ func (e *Etcd) retryClient(fn func(cli *clientv3.Client) error) (err error) { e.cli = cli e.cliMu.Unlock() break - case etcdserver.ErrTimeout: + case etcdserver.ErrTimeout, etcdserver.ErrTimeoutDueToLeaderFail, etcdserver.ErrTimeoutDueToConnectionLost, etcdserver.ErrTimeoutLeaderTransfer: // sporadic timeouts are concerning but not necessarily fatal // and can usually be retried. elapsed := time.Since(start)