Browse Source

clientv3: pin any endpoint when all unhealthy

Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
Gyu-Ho Lee 8 years ago
parent
commit
e9e17e3fe5
1 changed files with 1 additions and 1 deletions
  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()