retry other etcd ErrTimeout variants

etcd can return more detailed ErrTimeout variants in rare cases, and we
want to retry on those too.
This commit is contained in:
Seebs 2022-01-19 14:44:47 -06:00
parent 37507db4ac
commit 2dce518a24

View file

@ -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)