|
|
@@ -988,7 +988,7 @@ func stepLeader(r *raft, m pb.Message) error {
|
|
|
r.bcastAppend()
|
|
|
return nil
|
|
|
case pb.MsgReadIndex:
|
|
|
- if r.prs.quorum() > 1 {
|
|
|
+ if !r.prs.isSingleton() { // more than one voting member in cluster
|
|
|
if r.raftLog.zeroTermOnErrCompacted(r.raftLog.term(r.raftLog.committed)) != r.Term {
|
|
|
// Reject read only request when this leader has not committed any log entry at its term.
|
|
|
return nil
|
|
|
@@ -1009,7 +1009,7 @@ func stepLeader(r *raft, m pb.Message) error {
|
|
|
r.send(pb.Message{To: m.From, Type: pb.MsgReadIndexResp, Index: ri, Entries: m.Entries})
|
|
|
}
|
|
|
}
|
|
|
- } else { // there is only one voting member (the leader) in the cluster
|
|
|
+ } else { // only one voting member (the leader) in the cluster
|
|
|
if m.From == None || m.From == r.id { // from leader itself
|
|
|
r.readStates = append(r.readStates, ReadState{Index: r.raftLog.committed, RequestCtx: m.Entries[0].Data})
|
|
|
} else { // from learner member
|