diff --git a/tests/framework/e2e/cluster.go b/tests/framework/e2e/cluster.go index 35e83bc2f..0eafc4579 100644 --- a/tests/framework/e2e/cluster.go +++ b/tests/framework/e2e/cluster.go @@ -856,6 +856,22 @@ func (epc *EtcdProcessCluster) rollingStart(f func(ep EtcdProcess) error) error } func (epc *EtcdProcessCluster) Stop() (err error) { + for _, p := range epc.Procs { + if p == nil { + continue + } + if curErr := p.Stop(); curErr != nil { + if err != nil { + err = fmt.Errorf("%v; %v", err, curErr) + } else { + err = curErr + } + } + } + return err +} + +func (epc *EtcdProcessCluster) ConcurrentStop() (err error) { errCh := make(chan error, len(epc.Procs)) for i := range epc.Procs { if epc.Procs[i] == nil { diff --git a/tests/robustness/linearizability_test.go b/tests/robustness/linearizability_test.go index 0a5e682a9..4fc8a8f49 100644 --- a/tests/robustness/linearizability_test.go +++ b/tests/robustness/linearizability_test.go @@ -279,5 +279,5 @@ func forcestopCluster(clus *e2e.EtcdProcessCluster) error { for _, member := range clus.Procs { member.Kill() } - return clus.Stop() + return clus.ConcurrentStop() }