Fixed goroutine leak in server/etcdserver/raft_test.go

Signed-off-by: VladSaioc <vladsaioc10@gmail.com>
This commit is contained in:
VladSaioc 2022-07-31 16:05:26 +02:00
parent 046c46e52e
commit 6cded3d94c

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.