From 01cbcce8ba9c5d5d7b023eb7a25f042c1aba9779 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Tue, 25 Nov 2014 14:53:49 -0800 Subject: [PATCH] etcdserver: do not applySnapshot twice --- etcdserver/server.go | 1 - raft/log.go | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/etcdserver/server.go b/etcdserver/server.go index 13ceb5e39..03d99ca7d 100644 --- a/etcdserver/server.go +++ b/etcdserver/server.go @@ -394,7 +394,6 @@ func (s *EtcdServer) run() { 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 } diff --git a/raft/log.go b/raft/log.go index 87f7bb6dd..a3bf9a3d3 100644 --- a/raft/log.go +++ b/raft/log.go @@ -245,6 +245,8 @@ func (l *raftLog) maybeCommit(maxIndex, term uint64) bool { } func (l *raftLog) restore(s pb.Snapshot) { + // TODO: rethink restore logic. + // This breaks the rule that raft never modifies storage. err := l.storage.ApplySnapshot(s) if err != nil { panic(err) // TODO(bdarnell)