Browse Source

etcdserver: save snapshot into wal first

Xiang Li 10 years ago
parent
commit
1231f82f22
1 changed files with 5 additions and 5 deletions
  1. 5 5
      etcdserver/storage.go

+ 5 - 5
etcdserver/storage.go

@@ -53,15 +53,15 @@ func NewStorage(w *wal.WAL, s *snap.Snapshotter) Storage {
 // SaveSnap saves the snapshot to disk and release the locked
 // SaveSnap saves the snapshot to disk and release the locked
 // wal files since they will not be used.
 // wal files since they will not be used.
 func (st *storage) SaveSnap(snap raftpb.Snapshot) error {
 func (st *storage) SaveSnap(snap raftpb.Snapshot) error {
-	err := st.Snapshotter.SaveSnap(snap)
-	if err != nil {
-		return err
-	}
 	walsnap := walpb.Snapshot{
 	walsnap := walpb.Snapshot{
 		Index: snap.Metadata.Index,
 		Index: snap.Metadata.Index,
 		Term:  snap.Metadata.Term,
 		Term:  snap.Metadata.Term,
 	}
 	}
-	err = st.WAL.SaveSnapshot(walsnap)
+	err := st.WAL.SaveSnapshot(walsnap)
+	if err != nil {
+		return err
+	}
+	err = st.Snapshotter.SaveSnap(snap)
 	if err != nil {
 	if err != nil {
 		return err
 		return err
 	}
 	}