Skip to content

Commit ae29cf2

Browse files
authored
Merge pull request #2181 from aaronlehmann/leader-comes-back
raft: Check for leader before returning quorum loss error
2 parents 0cafa48 + 562e716 commit ae29cf2

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

manager/state/raft/raft.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -1370,17 +1370,17 @@ func (n *Node) getLeaderConn() (*grpc.ClientConn, error) {
13701370
// LeaderConn returns current connection to cluster leader or raftselector.ErrIsLeader
13711371
// if current machine is leader.
13721372
func (n *Node) LeaderConn(ctx context.Context) (*grpc.ClientConn, error) {
1373-
if atomic.LoadUint32(&n.ticksWithNoLeader) > lostQuorumTimeout {
1374-
return nil, errLostQuorum
1375-
}
1376-
13771373
cc, err := n.getLeaderConn()
13781374
if err == nil {
13791375
return cc, nil
13801376
}
13811377
if err == raftselector.ErrIsLeader {
13821378
return nil, err
13831379
}
1380+
if atomic.LoadUint32(&n.ticksWithNoLeader) > lostQuorumTimeout {
1381+
return nil, errLostQuorum
1382+
}
1383+
13841384
ticker := time.NewTicker(1 * time.Second)
13851385
defer ticker.Stop()
13861386
for {

0 commit comments

Comments
 (0)