From 0dc7c8595627e38ca2b83d17a062b51f384c2025 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Fri, 17 Apr 2020 15:06:18 -0700 Subject: [PATCH] Don't use timeout package when stopping shim logger containerd loads timeout values from config.toml and populated those values to `timeout` package at launch. So when using `timeout` package from shim, there are default values and config file is ignored. So use a hardcoded value for binary IO. Signed-off-by: Maksym Pavlenko --- pkg/process/io.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/pkg/process/io.go b/pkg/process/io.go index 78f86047e..0603ffff0 100644 --- a/pkg/process/io.go +++ b/pkg/process/io.go @@ -34,7 +34,6 @@ import ( "github.com/containerd/containerd/log" "github.com/containerd/containerd/namespaces" "github.com/containerd/containerd/pkg/stdio" - "github.com/containerd/containerd/pkg/timeout" "github.com/containerd/containerd/sys" "github.com/containerd/fifo" runc "github.com/containerd/go-runc" @@ -42,9 +41,7 @@ import ( "github.com/pkg/errors" ) -const ( - shimLoggerTermTimeout = "io.containerd.timeout.shim.logger.shutdown" -) +const binaryIOProcTermTimeout = 12 * time.Second // Give logger process solid 10 seconds for cleanup var bufPool = sync.Pool{ New: func() interface{} { @@ -373,12 +370,10 @@ func (b *binaryIO) cancel() error { done <- err }() - termTimeout := timeout.Get(shimLoggerTermTimeout) - select { case err := <-done: return err - case <-time.After(termTimeout): + case <-time.After(binaryIOProcTermTimeout): log.L.Warn("failed to wait for shim logger process to exit, killing") err := b.cmd.Process.Kill()