etcdserver: save state before save snapshot

This commit is contained in:
Xiang Li 2016-06-15 22:00:33 -07:00
parent b607b36a6c
commit 9c78cda088

View File

@ -216,6 +216,13 @@ func (r *raftNode) start(s *EtcdServer) {
r.s.send(rd.Messages)
}
if err := r.storage.Save(rd.HardState, rd.Entries); err != nil {
plog.Fatalf("raft save state and entries error: %v", err)
}
if !raft.IsEmptyHardState(rd.HardState) {
proposalsCommitted.Set(float64(rd.HardState.Commit))
}
if !raft.IsEmptySnap(rd.Snapshot) {
if err := r.storage.SaveSnap(rd.Snapshot); err != nil {
plog.Fatalf("raft save snapshot error: %v", err)
@ -223,12 +230,6 @@ func (r *raftNode) start(s *EtcdServer) {
r.raftStorage.ApplySnapshot(rd.Snapshot)
plog.Infof("raft applied incoming snapshot at index %d", rd.Snapshot.Metadata.Index)
}
if err := r.storage.Save(rd.HardState, rd.Entries); err != nil {
plog.Fatalf("raft save state and entries error: %v", err)
}
if !raft.IsEmptyHardState(rd.HardState) {
proposalsCommitted.Set(float64(rd.HardState.Commit))
}
r.raftStorage.Append(rd.Entries)