Ver Fonte

Merge pull request #6062 from crosbymichael/update-waits

Update wait calls to call Wait on Command
Victor Vieux há 11 anos atrás
pai
commit
b8a89ba963

+ 3 - 1
daemon/execdriver/lxc/driver.go

@@ -167,6 +167,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba
 		waitErr  error
 		waitLock = make(chan struct{})
 	)
+
 	go func() {
 		if err := c.Wait(); err != nil {
 			if _, ok := err.(*exec.ExitError); !ok { // Do not propagate the error if it's simply a status code != 0
@@ -181,10 +182,11 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba
 	if err != nil {
 		if c.Process != nil {
 			c.Process.Kill()
-			c.Process.Wait()
+			c.Wait()
 		}
 		return -1, err
 	}
+
 	c.ContainerPid = pid
 
 	if startCallback != nil {

+ 3 - 3
pkg/libcontainer/nsinit/exec.go

@@ -56,7 +56,7 @@ func Exec(container *libcontainer.Container, term Terminal, rootfs, dataPath str
 	}
 	if err := WritePid(dataPath, command.Process.Pid, started); err != nil {
 		command.Process.Kill()
-		command.Process.Wait()
+		command.Wait()
 		return -1, err
 	}
 	defer DeletePid(dataPath)
@@ -66,7 +66,7 @@ func Exec(container *libcontainer.Container, term Terminal, rootfs, dataPath str
 	cleaner, err := SetupCgroups(container, command.Process.Pid)
 	if err != nil {
 		command.Process.Kill()
-		command.Process.Wait()
+		command.Wait()
 		return -1, err
 	}
 	if cleaner != nil {
@@ -75,7 +75,7 @@ func Exec(container *libcontainer.Container, term Terminal, rootfs, dataPath str
 
 	if err := InitializeNetworking(container, command.Process.Pid, syncPipe); err != nil {
 		command.Process.Kill()
-		command.Process.Wait()
+		command.Wait()
 		return -1, err
 	}
 

+ 1 - 3
pkg/libcontainer/nsinit/init.go

@@ -126,9 +126,7 @@ func RestoreParentDeathSignal(old int) error {
 	// Signal self if parent is already dead. Does nothing if running in a new
 	// PID namespace, as Getppid will always return 0.
 	if syscall.Getppid() == 1 {
-		err := syscall.Kill(syscall.Getpid(), syscall.Signal(old))
-		syscall.Wait4(syscall.Getpid(), nil, 0, nil)
-		return err
+		return syscall.Kill(syscall.Getpid(), syscall.SIGKILL)
 	}
 
 	return nil