Merge pull request #2762 from giuseppe/rootless-exec-old-containers-uidmap

rootless: fix regression when using exec on old containers
This commit is contained in:
OpenShift Merge Robot
2019-03-27 08:37:37 -07:00
committed by GitHub

View File

@ -112,14 +112,19 @@ func execCmd(c *cliconfig.ExecValues) error {
var ret int var ret int
data, err := ioutil.ReadFile(ctr.Config().ConmonPidFile) data, err := ioutil.ReadFile(ctr.Config().ConmonPidFile)
if err != nil { 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)
}
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)
} }
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))
if err != nil { if err != nil {
return err return err
} }