From a13d5a70ff8c351bd056f9ad34139ab914dbad05 Mon Sep 17 00:00:00 2001 From: Yicheng Qin Date: Tue, 25 Nov 2014 12:37:55 -0800 Subject: [PATCH] etcdserver: save snapshot before entries --- etcdserver/server.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/etcdserver/server.go b/etcdserver/server.go index 37e9822a3..0253bf329 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -389,16 +389,17 @@ func (s *EtcdServer) run() { } } - s.raftStorage.Append(rd.Entries) - if err := s.storage.Save(rd.HardState, rd.Entries); err != nil { - log.Fatalf("etcdserver: save state and entries error: %v", err) - } if !raft.IsEmptySnap(rd.Snapshot) && rd.Snapshot.Metadata.Index > snapi { if err := s.storage.SaveSnap(rd.Snapshot); err != nil { log.Fatalf("etcdserver: create snapshot error: %v", err) } + s.raftStorage.ApplySnapshot(rd.Snapshot) snapi = rd.Snapshot.Metadata.Index } + if err := s.storage.Save(rd.HardState, rd.Entries); err != nil { + log.Fatalf("etcdserver: save state and entries error: %v", err) + } + s.raftStorage.Append(rd.Entries) s.sendhub.Send(rd.Messages) if !raft.IsEmptySnap(rd.Snapshot) {