summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
Diffstat (limited to 'libpod')
-rw-r--r--libpod/container_api.go4
-rw-r--r--libpod/oci_conmon_linux.go2
2 files changed, 5 insertions, 1 deletions
diff --git a/libpod/container_api.go b/libpod/container_api.go
index dbd5fc1fb..742eb6d3e 100644
--- a/libpod/container_api.go
+++ b/libpod/container_api.go
@@ -551,6 +551,10 @@ func (c *Container) WaitForExit(ctx context.Context, pollInterval time.Duration)
exitCode, err := c.runtime.state.GetContainerExitCode(id)
if err != nil {
+ if errors.Is(err, define.ErrNoSuchExitCode) && c.ensureState(define.ContainerStateConfigured, define.ContainerStateCreated) {
+ // The container never ran.
+ return true, 0, nil
+ }
return true, -1, err
}
diff --git a/libpod/oci_conmon_linux.go b/libpod/oci_conmon_linux.go
index 0cdfe90e9..121e750f4 100644
--- a/libpod/oci_conmon_linux.go
+++ b/libpod/oci_conmon_linux.go
@@ -303,7 +303,7 @@ func (r *ConmonOCIRuntime) UpdateContainerStatus(ctr *Container) error {
ctr.state.ExitCode = -1
ctr.state.FinishedTime = time.Now()
ctr.state.State = define.ContainerStateExited
- return nil
+ return ctr.runtime.state.AddContainerExitCode(ctr.ID(), ctr.state.ExitCode)
}
return fmt.Errorf("error getting container %s state. stderr/out: %s: %w", ctr.ID(), out, err)
}