Merge pull request #14286 from VladSaioc/bugfix-goroutine-leak

Fixed goroutine leak in server/etcdserver/raft_test.go
This commit is contained in:
Benjamin Wang 2022-08-03 06:02:54 +08:00 committed by GitHub
commit ae36a577d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -168,18 +168,24 @@ func TestStopRaftWhenWaitingForApplyDone(t *testing.T) {
srv := &EtcdServer{lgMu: new(sync.RWMutex), lg: zaptest.NewLogger(t), r: *r}
srv.r.start(nil)
n.readyc <- raft.Ready{}
stop := func() {
srv.r.stopped <- struct{}{}
select {
case <-srv.r.done:
case <-time.After(time.Second):
t.Fatalf("failed to stop raft loop")
}
}
select {
case <-srv.r.applyc:
case <-time.After(time.Second):
stop()
t.Fatalf("failed to receive toApply struct")
}
srv.r.stopped <- struct{}{}
select {
case <-srv.r.done:
case <-time.After(time.Second):
t.Fatalf("failed to stop raft loop")
}
stop()
}
// TestConfigChangeBlocksApply ensures toApply blocks if committed entries contain config-change.