From aacc5a863221097d3deafaf890d525da814b0dec Mon Sep 17 00:00:00 2001 From: Giuseppe Scrivano Date: Mon, 25 Mar 2019 23:15:24 +0100 Subject: rootless: fix regression when using exec on old containers fallback to the previous behavior of joining only the user namespace, when we cannot join the conmon userns+mount namespaces. Closes: https://github.com/containers/libpod/issues/2673 Signed-off-by: Giuseppe Scrivano --- cmd/podman/exec.go | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'cmd/podman/exec.go') diff --git a/cmd/podman/exec.go b/cmd/podman/exec.go index a6afbf75a..fc1c76e9f 100644 --- a/cmd/podman/exec.go +++ b/cmd/podman/exec.go @@ -112,14 +112,19 @@ func execCmd(c *cliconfig.ExecValues) error { var ret int data, err := ioutil.ReadFile(ctr.Config().ConmonPidFile) - if err != nil { - return errors.Wrapf(err, "cannot read conmon PID file %q", ctr.Config().ConmonPidFile) - } - conmonPid, err := strconv.Atoi(string(data)) - if err != nil { - return errors.Wrapf(err, "cannot parse PID %q", data) + if err == nil { + conmonPid, err := strconv.Atoi(string(data)) + if err != nil { + return errors.Wrapf(err, "cannot parse PID %q", data) + } + became, ret, err = rootless.JoinDirectUserAndMountNS(uint(conmonPid)) + } else { + pid, err := ctr.PID() + if err != nil { + return err + } + became, ret, err = rootless.JoinNS(uint(pid), c.PreserveFDs) } - became, ret, err = rootless.JoinDirectUserAndMountNS(uint(conmonPid)) if err != nil { return err } -- cgit v1.2.3-54-g00ecf