Skip to content

Commit

Permalink
stop: fix error handling
Browse files Browse the repository at this point in the history
Fix the error handling in the fallback logic of `stop` when Podman
resorts to killing a container; the error message wrapped the wrong
error.

[NO NEW TESTS NEEDED] as it is a rare flake in the tests and I do not
know how to reliably reproduce it.

Fixes: containers#15661
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
  • Loading branch information
vrothberg committed Sep 9, 2022
1 parent e37dd95 commit 6bf8670
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions libpod/oci_conmon_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -429,13 +429,11 @@ func (r *ConmonOCIRuntime) StopContainer(ctr *Container, timeout uint, all bool)
}
}

if err := r.KillContainer(ctr, 9, all); err != nil {
if err := r.KillContainer(ctr, uint(unix.SIGKILL), all); err != nil {
// Again, check if the container is gone. If it is, exit cleanly.
err := unix.Kill(ctr.state.PID, 0)
if err == unix.ESRCH {
if aliveErr := unix.Kill(ctr.state.PID, 0); errors.Is(aliveErr, unix.ESRCH) {
return nil
}

return fmt.Errorf("error sending SIGKILL to container %s: %w", ctr.ID(), err)
}

Expand Down

0 comments on commit 6bf8670

Please sign in to comment.