mirror of
https://github.com/containers/podman.git
synced 2025-05-20 00:27:03 +08:00
Exec: use ErrorConmonRead
Before, we were using -1 as a bogus value in podman to signify something went wrong when reading from a conmon pipe. However, conmon uses negative values to indicate the runtime failed, and return the runtime's exit code. instead, we should use a bogus value that is actually bogus. Define that value in the define package as MinInt32 (-1<< 31 - 1), which is outside of the range of possible pids (-1 << 31) Signed-off-by: Peter Hunt <pehunt@redhat.com>
This commit is contained in:
@ -297,7 +297,9 @@ func (c *Container) Exec(tty, privileged bool, env map[string]string, cmd []stri
|
||||
// Conmon will pass a non-zero exit code from the runtime as a pid here.
|
||||
// we differentiate a pid with an exit code by sending it as negative, so reverse
|
||||
// that change and return the exit code the runtime failed with.
|
||||
if pid < 0 {
|
||||
// Make sure the value is not ErrorConmonRead, as that is a podman set bogus value
|
||||
// and not sent by conmon (and thus has no special meaning)
|
||||
if pid < 0 && pid != define.ErrorConmonRead {
|
||||
ec = -1 * pid
|
||||
}
|
||||
return ec, err
|
||||
|
Reference in New Issue
Block a user