Merge pull request #2713 from xiaost/etcdserver-skip-empty-entry

etcdserver: apply: skip empty Entry
release-2.1
Xiang Li 2015-04-23 21:24:25 -07:00
commit b5d4d9ae9b
1 changed files with 5 additions and 0 deletions

View File

@ -669,6 +669,11 @@ func (s *EtcdServer) apply(es []raftpb.Entry, confState *raftpb.ConfState) (uint
e := es[i]
switch e.Type {
case raftpb.EntryNormal:
// raft state machine may generate noop entry when leader confirmation.
// skip it in advance to avoid some potential bug in the future
if len(e.Data) == 0 {
break
}
var r pb.Request
pbutil.MustUnmarshal(&r, e.Data)
s.w.Trigger(r.ID, s.applyRequest(r))