浏览代码

clientv3: pin any endpoint when all unhealthy

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
Gyu-Ho Lee 8 年之前
父节点
当前提交
e9e17e3fe5
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      clientv3/health_balancer.go

+ 1 - 1
clientv3/health_balancer.go

@@ -188,7 +188,7 @@ func (hb *healthBalancer) endpointError(addr string, err error) {
 
 func (hb *healthBalancer) mayPin(addr grpc.Address) bool {
 	hb.mu.RLock()
-	skip := len(hb.addrs) == 1 || len(hb.unhealthy) == 0
+	skip := len(hb.addrs) == 1 || len(hb.unhealthy) == 0 || len(hb.addrs) == len(hb.unhealthy)
 	failedTime, bad := hb.unhealthy[addr.Addr]
 	dur := hb.healthCheckTimeout
 	hb.mu.RUnlock()