aboutsummaryrefslogtreecommitdiff
path: root/libpod/oci_conmon_linux.go
diff options
context:
space:
mode:
authorPeter Hunt <pehunt@redhat.com>2020-03-03 15:35:29 -0500
committerPeter Hunt <pehunt@redhat.com>2020-03-03 15:43:31 -0500
commitd3d97a25e8c87cf741b2e24ac01ef84962137106 (patch)
treead8bde2cc012fb4fdb01c80d12e93a04badd4300 /libpod/oci_conmon_linux.go
parent4b72f9e4013411208751df2a92ab9f322d4da5b2 (diff)
downloadpodman-d3d97a25e8c87cf741b2e24ac01ef84962137106.tar.gz
podman-d3d97a25e8c87cf741b2e24ac01ef84962137106.tar.bz2
podman-d3d97a25e8c87cf741b2e24ac01ef84962137106.zip
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>
Diffstat (limited to 'libpod/oci_conmon_linux.go')
-rw-r--r--libpod/oci_conmon_linux.go8
1 files changed, 4 insertions, 4 deletions
diff --git a/libpod/oci_conmon_linux.go b/libpod/oci_conmon_linux.go
index 8da6db09f..f260e3a39 100644
--- a/libpod/oci_conmon_linux.go
+++ b/libpod/oci_conmon_linux.go
@@ -1557,7 +1557,7 @@ func readConmonPipeData(pipe *os.File, ociLog string) DataAndErr {
ch <- syncStruct{si: si}
}()
- data := -1
+ data := define.ErrorConmonRead
select {
case ss := <-ch:
if ss.err != nil {
@@ -1567,14 +1567,14 @@ func readConmonPipeData(pipe *os.File, ociLog string) DataAndErr {
var ociErr ociError
if err := json.Unmarshal(ociLogData, &ociErr); err == nil {
return DataAndErr{
- data: -1,
+ data: data,
err: getOCIRuntimeError(ociErr.Msg),
}
}
}
}
return DataAndErr{
- data: -1,
+ data: data,
err: errors.Wrapf(ss.err, "container create failed (no logs from conmon)"),
}
}
@@ -1607,7 +1607,7 @@ func readConmonPipeData(pipe *os.File, ociLog string) DataAndErr {
data = ss.si.Data
case <-time.After(define.ContainerCreateTimeout):
return DataAndErr{
- data: -1,
+ data: data,
err: errors.Wrapf(define.ErrInternal, "container creation timeout"),
}
}