diff --git a/pkg/controller/volume/persistentvolume/pv_controller_test.go b/pkg/controller/volume/persistentvolume/pv_controller_test.go index 0a03cc4dc5b..c12de0d9bb6 100644 --- a/pkg/controller/volume/persistentvolume/pv_controller_test.go +++ b/pkg/controller/volume/persistentvolume/pv_controller_test.go @@ -225,6 +225,18 @@ func TestControllerSync(t *testing.T) { if err != nil { return err } + + // Wait for the PVC to get fully processed. This avoids races between PV controller and DeleteClaimEvent + // below. + err = wait.Poll(10*time.Millisecond, wait.ForeverTestTimeout, func() (bool, error) { + obj := ctrl.claims.List()[0] + claim := obj.(*v1.PersistentVolumeClaim) + return claim.Status.Phase == v1.ClaimLost, nil + }) + if err != nil { + return err + } + // trying to remove the claim as well obj := ctrl.claims.List()[0] claim := obj.(*v1.PersistentVolumeClaim)