From 2427145dfcc92ca4401658556dacdd4f91276059 Mon Sep 17 00:00:00 2001 From: Rolf Neugebauer Date: Sun, 26 Apr 2020 22:49:48 +0100 Subject: [PATCH] pkg/init: Revert "workaround bad containerd bug" This reverts commit 6653c3387e83ed1f117b6f3355b85598f68947b9. Signed-off-by: Rolf Neugebauer --- pkg/init/cmd/service/cmd.go | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/pkg/init/cmd/service/cmd.go b/pkg/init/cmd/service/cmd.go index aa7193fbf..cff32f2fe 100644 --- a/pkg/init/cmd/service/cmd.go +++ b/pkg/init/cmd/service/cmd.go @@ -6,11 +6,8 @@ import ( "flag" "fmt" "os" - pathutil "path" "path/filepath" - syscall "golang.org/x/sys/unix" - "github.com/containerd/containerd" "github.com/containerd/containerd/cio" "github.com/containerd/containerd/namespaces" @@ -203,31 +200,12 @@ func start(ctx context.Context, service, sock, basePath, dumpSpec string) (strin logger := GetLog(varLogDir) - // This is silly but necessary due to containerd bug - // https://github.com/containerd/containerd/issues/4019 - // essentially, when you create a container and then remove it, - // containerd blows away everything in the parent dir of the first one it finds, - // in this case, "/dev/null", so it blows away everything in "/dev". - // This most certainly is a "bad thing". - // - // To fix it temporarily, we are creating a tmpdir and creating a null - // device there, so that it can blow away the tempdir - stdinDir := pathutil.Join("/run", "containers-stdin", service) - if err := os.MkdirAll(stdinDir, 0700); err != nil { - return "", 0, "failed to create stdin directory", err - } - stdinFile := pathutil.Join(stdinDir, "null") - // make a dev null in stdinDir - if err := syscall.Mknod(stdinFile, uint32(os.FileMode(0660)|syscall.S_IFCHR), int(syscall.Mkdev(1, 3))); err != nil { - return "", 0, "failed to create stdin null file", err - } - io := func(id string) (cio.IO, error) { stdoutFile := logger.Path(service + ".out") stderrFile := logger.Path(service) return &logio{ cio.Config{ - Stdin: stdinFile, + Stdin: "/dev/null", Stdout: stdoutFile, Stderr: stderrFile, Terminal: false,