diff --git a/test/e2e/apps/daemon_restart.go b/test/e2e/apps/daemon_restart.go index c9845b143d1..ab8d9e34f7d 100644 --- a/test/e2e/apps/daemon_restart.go +++ b/test/e2e/apps/daemon_restart.go @@ -216,7 +216,6 @@ var _ = SIGDescribe("DaemonRestart [Disruptive]", func() { var config testutils.RCConfig var controller cache.Controller var newPods cache.Store - var stopCh chan struct{} var tracker *podTracker ginkgo.BeforeEach(func(ctx context.Context) { @@ -237,18 +236,21 @@ var _ = SIGDescribe("DaemonRestart [Disruptive]", func() { framework.ExpectNoError(e2erc.RunRC(ctx, config)) replacePods(*config.CreatedPods, existingPods) - stopCh = make(chan struct{}) + // The following code continues to run after the BeforeEach and thus + // must not use ctx. + backgroundCtx, cancel := context.WithCancel(context.Background()) + ginkgo.DeferCleanup(cancel) tracker = newPodTracker() newPods, controller = cache.NewInformer( &cache.ListWatch{ ListFunc: func(options metav1.ListOptions) (runtime.Object, error) { options.LabelSelector = labelSelector.String() - obj, err := f.ClientSet.CoreV1().Pods(ns).List(ctx, options) + obj, err := f.ClientSet.CoreV1().Pods(ns).List(backgroundCtx, options) return runtime.Object(obj), err }, WatchFunc: func(options metav1.ListOptions) (watch.Interface, error) { options.LabelSelector = labelSelector.String() - return f.ClientSet.CoreV1().Pods(ns).Watch(ctx, options) + return f.ClientSet.CoreV1().Pods(ns).Watch(backgroundCtx, options) }, }, &v1.Pod{}, @@ -265,11 +267,7 @@ var _ = SIGDescribe("DaemonRestart [Disruptive]", func() { }, }, ) - go controller.Run(stopCh) - }) - - ginkgo.AfterEach(func() { - close(stopCh) + go controller.Run(backgroundCtx.Done()) }) ginkgo.It("Controller Manager should not create/delete replicas across restart", func(ctx context.Context) { diff --git a/test/e2e/kubectl/kubectl.go b/test/e2e/kubectl/kubectl.go index 3006df523c2..631cca961cf 100644 --- a/test/e2e/kubectl/kubectl.go +++ b/test/e2e/kubectl/kubectl.go @@ -579,7 +579,7 @@ var _ = SIGDescribe("Kubectl client", func() { if !strings.Contains(ee.String(), "timed out") { framework.Failf("Missing expected 'timed out' error, got: %#v", ee) } - framework.ExpectNoError(e2epod.WaitForPodToDisappear(ctx, f.ClientSet, ns, "failure-3", labels.Everything(), 2*time.Second, wait.ForeverTestTimeout)) + framework.ExpectNoError(e2epod.WaitForPodToDisappear(ctx, f.ClientSet, ns, "failure-3", labels.Everything(), 2*time.Second, 2*v1.DefaultTerminationGracePeriodSeconds*time.Second)) }) ginkgo.It("[Slow] running a failing command with --leave-stdin-open", func(ctx context.Context) {