Browse Source

etcdserver: save snapshot only if the index is greater than previous snap index

Xiang Li 11 years ago
parent
commit
453133977d
1 changed files with 2 additions and 1 deletions
  1. 2 1
      etcdserver/server.go

+ 2 - 1
etcdserver/server.go

@@ -395,10 +395,11 @@ func (s *EtcdServer) run() {
 			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) {
+			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)
 				}
+				snapi = rd.Snapshot.Metadata.Index
 			}
 			s.sendhub.Send(rd.Messages)