|
|
@@ -1392,6 +1392,8 @@ func (s *EtcdServer) apply(es []raftpb.Entry, confState *raftpb.ConfState) (appl
|
|
|
switch e.Type {
|
|
|
case raftpb.EntryNormal:
|
|
|
s.applyEntryNormal(&e)
|
|
|
+ s.setAppliedIndex(e.Index)
|
|
|
+ s.setTerm(e.Term)
|
|
|
case raftpb.EntryConfChange:
|
|
|
// set the consistent index of current executing entry
|
|
|
if e.Index > s.consistIndex.ConsistentIndex() {
|
|
|
@@ -1401,15 +1403,13 @@ func (s *EtcdServer) apply(es []raftpb.Entry, confState *raftpb.ConfState) (appl
|
|
|
pbutil.MustUnmarshal(&cc, e.Data)
|
|
|
removedSelf, err := s.applyConfChange(cc, confState)
|
|
|
s.setAppliedIndex(e.Index)
|
|
|
+ s.setTerm(e.Term)
|
|
|
shouldStop = shouldStop || removedSelf
|
|
|
s.w.Trigger(cc.ID, &confChangeResponse{s.cluster.Members(), err})
|
|
|
default:
|
|
|
plog.Panicf("entry type should be either EntryNormal or EntryConfChange")
|
|
|
}
|
|
|
- atomic.StoreUint64(&s.appliedIndex, e.Index)
|
|
|
- atomic.StoreUint64(&s.term, e.Term)
|
|
|
- appliedt = e.Term
|
|
|
- appliedi = e.Index
|
|
|
+ appliedi, appliedt = e.Index, e.Term
|
|
|
}
|
|
|
return appliedt, appliedi, shouldStop
|
|
|
}
|
|
|
@@ -1422,7 +1422,6 @@ func (s *EtcdServer) applyEntryNormal(e *raftpb.Entry) {
|
|
|
s.consistIndex.setConsistentIndex(e.Index)
|
|
|
shouldApplyV3 = true
|
|
|
}
|
|
|
- defer s.setAppliedIndex(e.Index)
|
|
|
|
|
|
// raft state machine may generate noop entry when leader confirmation.
|
|
|
// skip it in advance to avoid some potential bug in the future
|