diff --git a/pkg/controller/persistentvolume/persistentvolume_framework_test.go b/pkg/controller/persistentvolume/persistentvolume_framework_test.go index e2d4b8eb2aa..2f2c6a0d09a 100644 --- a/pkg/controller/persistentvolume/persistentvolume_framework_test.go +++ b/pkg/controller/persistentvolume/persistentvolume_framework_test.go @@ -345,6 +345,12 @@ func (r *volumeReactor) getChangeCount() int { return r.changedSinceLastSync } +func (r *volumeReactor) getOperationCount() int { + r.ctrl.runningOperationsMapLock.Lock() + defer r.ctrl.runningOperationsMapLock.Unlock() + return len(r.ctrl.runningOperations) +} + // waitTest waits until all tests, controllers and other goroutines do their // job and no new actions are registered for 10 milliseconds. func (r *volumeReactor) waitTest() { @@ -354,7 +360,7 @@ func (r *volumeReactor) waitTest() { for { time.Sleep(10 * time.Millisecond) changes := r.getChangeCount() - if changes == oldChanges { + if changes == oldChanges && r.getOperationCount() == 0 { // No changes for last 10ms -> controller must be idle. break }