summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2021-10-27 09:44:54 +0200
committerGiuseppe Scrivano <gscrivan@redhat.com>2021-10-27 11:24:50 +0200
commit6b3b0a17c625bdf71b0ec8b783b288886d8e48d7 (patch)
treed3d83ff808ea8743761766ebcb3e52ac3bd72d2d
parent825889cc7e5c980fb09971a05983bc42ac503ba4 (diff)
downloadpodman-6b3b0a17c625bdf71b0ec8b783b288886d8e48d7.tar.gz
podman-6b3b0a17c625bdf71b0ec8b783b288886d8e48d7.tar.bz2
podman-6b3b0a17c625bdf71b0ec8b783b288886d8e48d7.zip
runtime: check for pause pid existence
check that the pause pid exists before trying to move it to a separate scope. Closes: https://github.com/containers/podman/issues/12065 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
-rw-r--r--libpod/runtime.go6
-rw-r--r--test/e2e/system_reset_test.go2
2 files changed, 7 insertions, 1 deletions
diff --git a/libpod/runtime.go b/libpod/runtime.go
index 855f3a9f9..950ac65eb 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -543,7 +543,11 @@ func makeRuntime(ctx context.Context, runtime *Runtime) (retErr error) {
return err
}
if became {
- utils.MovePauseProcessToScope(pausePid)
+ // Check if the pause process was created. If it was created, then
+ // move it to its own systemd scope.
+ if _, err = os.Stat(pausePid); err == nil {
+ utils.MovePauseProcessToScope(pausePid)
+ }
os.Exit(ret)
}
}
diff --git a/test/e2e/system_reset_test.go b/test/e2e/system_reset_test.go
index 102526a46..93ab166cd 100644
--- a/test/e2e/system_reset_test.go
+++ b/test/e2e/system_reset_test.go
@@ -60,6 +60,8 @@ var _ = Describe("podman system reset", func() {
session.WaitWithDefaultTimeout()
Expect(session).Should(Exit(0))
+ Expect(session.ErrorToString()).To(Not(ContainSubstring("Failed to add pause process")))
+
// If remote then the API service should have exited
// On local tests this is a noop
podmanTest.StartRemoteService()