瀏覽代碼

etcdserver: close storage when stop

Yicheng Qin 11 年之前
父節點
當前提交
a7bc03b42b
共有 2 個文件被更改,包括 6 次插入0 次删除
  1. 5 0
      etcdserver/server.go
  2. 1 0
      etcdserver/server_test.go

+ 5 - 0
etcdserver/server.go

@@ -111,6 +111,8 @@ type Storage interface {
 	// remove it in this interface.
 	// Cut cuts out a new wal file for saving new state and entries.
 	Cut() error
+	// Close closes the Storage and performs finalization.
+	Close() error
 }
 
 type Server interface {
@@ -396,6 +398,9 @@ func (s *EtcdServer) run() {
 	defer func() {
 		s.node.Stop()
 		s.sendhub.Stop()
+		if err := s.storage.Close(); err != nil {
+			log.Panicf("etcdserver: close storage error: %v", err)
+		}
 		close(s.done)
 	}()
 	for {

+ 1 - 0
etcdserver/server_test.go

@@ -1530,6 +1530,7 @@ func (p *storageRecorder) SaveSnap(st raftpb.Snapshot) error {
 	}
 	return nil
 }
+func (p *storageRecorder) Close() error { return nil }
 
 type readyNode struct {
 	readyc chan raft.Ready