diff options
author | Valentin Rothberg <vrothberg@redhat.com> | 2022-09-09 13:29:40 +0200 |
---|---|---|
committer | Valentin Rothberg <vrothberg@redhat.com> | 2022-09-09 14:05:18 +0200 |
commit | 6bf8670b694278e5e53655ad40605d099f7ae02b (patch) | |
tree | eabda06bdc7d21c44a0599ed53056ba6937eb91f | |
parent | e37dd95b7a7839865f9259e5bc91db3dfd175daa (diff) | |
download | podman-6bf8670b694278e5e53655ad40605d099f7ae02b.tar.gz podman-6bf8670b694278e5e53655ad40605d099f7ae02b.tar.bz2 podman-6bf8670b694278e5e53655ad40605d099f7ae02b.zip |
stop: fix error handling
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: #15661
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
-rw-r--r-- | libpod/oci_conmon_common.go | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libpod/oci_conmon_common.go b/libpod/oci_conmon_common.go index 87f0aa4ad..0c61de360 100644 --- a/libpod/oci_conmon_common.go +++ b/libpod/oci_conmon_common.go @@ -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) } |