|
@@ -162,18 +162,18 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba
|
|
|
logrus.Warnf("Your kernel does not support OOM notifications: %s", err)
|
|
|
}
|
|
|
waitF := p.Wait
|
|
|
- if nss := cont.Config().Namespaces; nss.Contains(configs.NEWPID) {
|
|
|
+ if nss := cont.Config().Namespaces; !nss.Contains(configs.NEWPID) {
|
|
|
// we need such hack for tracking processes with inerited fds,
|
|
|
// because cmd.Wait() waiting for all streams to be copied
|
|
|
waitF = waitInPIDHost(p, cont)
|
|
|
}
|
|
|
ps, err := waitF()
|
|
|
if err != nil {
|
|
|
- if err, ok := err.(*exec.ExitError); !ok {
|
|
|
+ execErr, ok := err.(*exec.ExitError)
|
|
|
+ if !ok {
|
|
|
return execdriver.ExitStatus{ExitCode: -1}, err
|
|
|
- } else {
|
|
|
- ps = err.ProcessState
|
|
|
}
|
|
|
+ ps = execErr.ProcessState
|
|
|
}
|
|
|
cont.Destroy()
|
|
|
|
|
@@ -189,16 +189,17 @@ func waitInPIDHost(p *libcontainer.Process, c libcontainer.Container) func() (*o
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
+ processes, err := c.Processes()
|
|
|
+
|
|
|
process, err := os.FindProcess(pid)
|
|
|
s, err := process.Wait()
|
|
|
if err != nil {
|
|
|
- if err, ok := err.(*exec.ExitError); !ok {
|
|
|
+ execErr, ok := err.(*exec.ExitError)
|
|
|
+ if !ok {
|
|
|
return s, err
|
|
|
- } else {
|
|
|
- s = err.ProcessState
|
|
|
}
|
|
|
+ s = execErr.ProcessState
|
|
|
}
|
|
|
- processes, err := c.Processes()
|
|
|
if err != nil {
|
|
|
return s, err
|
|
|
}
|