From 53cbf1797b001314035a13578ed60f015a0179e4 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Mon, 5 Aug 2019 19:18:54 -0700 Subject: [PATCH] daemon/ProcessEvent: make sure to cancel the contexts Reported by govet linter: > daemon/monitor.go:57:9: lostcancel: the cancel function returned by context.WithTimeout should be called, not discarded, to avoid a context leak (govet) > ctx, _ := context.WithTimeout(context.Background(), 2*time.Second) > ^ > daemon/monitor.go:128:9: lostcancel: the cancel function returned by context.WithTimeout should be called, not discarded, to avoid a context leak (govet) > ctx, _ := context.WithTimeout(context.Background(), 2*time.Second) > ^ Fixes: b5f288 ("Handle blocked I/O of exec'd processes") Signed-off-by: Kir Kolyshkin --- daemon/monitor.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/daemon/monitor.go b/daemon/monitor.go index b42b54b8e8..c294742884 100644 --- a/daemon/monitor.go +++ b/daemon/monitor.go @@ -54,9 +54,9 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerdtypes.EventType, ei if err != nil { logrus.WithError(err).Warnf("failed to delete container %s from containerd", c.ID) } - ctx, _ := context.WithTimeout(context.Background(), 2*time.Second) - + ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) c.StreamConfig.Wait(ctx) + cancel() c.Reset(false) exitStatus := container.ExitStatus{ @@ -125,8 +125,9 @@ func (daemon *Daemon) ProcessEvent(id string, e libcontainerdtypes.EventType, ei execConfig.ExitCode = &ec execConfig.Running = false - ctx, _ := context.WithTimeout(context.Background(), 2*time.Second) + ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) execConfig.StreamConfig.Wait(ctx) + cancel() if err := execConfig.CloseStreams(); err != nil { logrus.Errorf("failed to cleanup exec %s streams: %s", c.ID, err)