Explorar el Código

Merge pull request #3077 from yichengq/fix-test-sync

etcdserver: init raft internal var early
Yicheng Qin hace 10 años
padre
commit
5be545b872
Se han modificado 3 ficheros con 4 adiciones y 3 borrados
  1. 0 3
      etcdserver/raft.go
  2. 2 0
      etcdserver/raft_test.go
  3. 2 0
      etcdserver/server.go

+ 0 - 3
etcdserver/raft.go

@@ -109,9 +109,6 @@ type raftNode struct {
 }
 
 func (r *raftNode) run() {
-	r.stopped = make(chan struct{})
-	r.done = make(chan struct{})
-
 	var syncC <-chan time.Time
 
 	defer r.stop()

+ 2 - 0
etcdserver/raft_test.go

@@ -152,6 +152,8 @@ func TestStopRaftWhenWaitingForApplyDone(t *testing.T) {
 		storage:     &storageRecorder{},
 		raftStorage: raft.NewMemoryStorage(),
 		transport:   &nopTransporter{},
+		stopped:     make(chan struct{}),
+		done:        make(chan struct{}),
 	}
 	r.s = &EtcdServer{r: r}
 	go r.run()

+ 2 - 0
etcdserver/server.go

@@ -416,6 +416,8 @@ func (s *EtcdServer) run() {
 	// TODO: get rid of the raft initialization in etcd server
 	s.r.s = s
 	s.r.applyc = make(chan apply)
+	s.r.stopped = make(chan struct{})
+	s.r.done = make(chan struct{})
 	go s.r.run()
 	defer func() {
 		s.r.stopped <- struct{}{}