Help debug port forward flakes

pull/6/head
Andy Goldstein 2016-01-28 15:28:40 -05:00
parent 146a9e6075
commit 86ae623a09
1 changed files with 11 additions and 1 deletions

View File

@ -1215,9 +1215,15 @@ func (dm *DockerManager) PortForward(pod *kubecontainer.Pod, port uint16, stream
return fmt.Errorf("unable to do port forwarding: nsenter not found.")
}
commandString := fmt.Sprintf("%s %s", nsenterPath, strings.Join(args, " "))
glog.V(4).Infof("executing port forwarding command: %s", commandString)
command := exec.Command(nsenterPath, args...)
command.Stdout = stream
stderr := new(bytes.Buffer)
command.Stderr = stderr
// If we use Stdin, command.Run() won't return until the goroutine that's copying
// from stream finishes. Unfortunately, if you have a client like telnet connected
// via port forwarding, as long as the user's telnet client is connected to the user's
@ -1236,7 +1242,11 @@ func (dm *DockerManager) PortForward(pod *kubecontainer.Pod, port uint16, stream
inPipe.Close()
}()
return command.Run()
if err := command.Run(); err != nil {
return fmt.Errorf("%v: %s", err, stderr.String())
}
return nil
}
// Get the IP address of a container's interface using nsenter