mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #17180 from rhatdan/destroy
Docker is calling cont.Destroy twice on success
This commit is contained in:
commit
5087e8c2e8
1 changed files with 5 additions and 1 deletions
|
@ -132,6 +132,7 @@ type execOutput struct {
|
||||||
// Run implements the exec driver Driver interface,
|
// Run implements the exec driver Driver interface,
|
||||||
// it calls libcontainer APIs to run a container.
|
// it calls libcontainer APIs to run a container.
|
||||||
func (d *Driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, hooks execdriver.Hooks) (execdriver.ExitStatus, error) {
|
func (d *Driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, hooks execdriver.Hooks) (execdriver.ExitStatus, error) {
|
||||||
|
destroyed := false
|
||||||
// take the Command and populate the libcontainer.Config from it
|
// take the Command and populate the libcontainer.Config from it
|
||||||
container, err := d.createContainer(c, hooks)
|
container, err := d.createContainer(c, hooks)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -157,7 +158,9 @@ func (d *Driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, hooks execd
|
||||||
d.activeContainers[c.ID] = cont
|
d.activeContainers[c.ID] = cont
|
||||||
d.Unlock()
|
d.Unlock()
|
||||||
defer func() {
|
defer func() {
|
||||||
cont.Destroy()
|
if !destroyed {
|
||||||
|
cont.Destroy()
|
||||||
|
}
|
||||||
d.cleanContainer(c.ID)
|
d.cleanContainer(c.ID)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
@ -191,6 +194,7 @@ func (d *Driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, hooks execd
|
||||||
ps = execErr.ProcessState
|
ps = execErr.ProcessState
|
||||||
}
|
}
|
||||||
cont.Destroy()
|
cont.Destroy()
|
||||||
|
destroyed = true
|
||||||
_, oomKill := <-oom
|
_, oomKill := <-oom
|
||||||
return execdriver.ExitStatus{ExitCode: utils.ExitStatus(ps.Sys().(syscall.WaitStatus)), OOMKilled: oomKill}, nil
|
return execdriver.ExitStatus{ExitCode: utils.ExitStatus(ps.Sys().(syscall.WaitStatus)), OOMKilled: oomKill}, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue