summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2021-10-27 09:44:54 +0200
committerMatthew Heon <matthew.heon@pm.me>2021-11-12 11:08:25 -0500
commit246782133cc36e66db0f4facccd7dabcd76a92d5 (patch)
treef36bf79ef420994e7b3e04b9d4769b2c1bfbd754
parent0519e7ef87a402a3f22193b49883cfc66812e61a (diff)
downloadpodman-246782133cc36e66db0f4facccd7dabcd76a92d5.tar.gz
podman-246782133cc36e66db0f4facccd7dabcd76a92d5.tar.bz2
podman-246782133cc36e66db0f4facccd7dabcd76a92d5.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 c22d87324..a99f55fb3 100644
--- a/libpod/runtime.go
+++ b/libpod/runtime.go
@@ -541,7 +541,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()