Fix invalid wait condition on kill

When using the compatability tests on kill, the kill
function goes into an infinite wait loop taking all of the CPU.

This change will use the correct wait function and exit properly.

Fixes: https://github.com/containers/podman/issues/9206

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
This commit is contained in:
Daniel J Walsh 2021-02-03 07:54:12 -05:00
parent 4ce8b1281e
commit d87f54fbba
No known key found for this signature in database
GPG Key ID: A2DF901DABE2C028
2 changed files with 11 additions and 2 deletions

View File

@ -233,8 +233,8 @@ func KillContainer(w http.ResponseWriter, r *http.Request) {
return
}
if sig == 0 || syscall.Signal(sig) == syscall.SIGKILL {
var opts entities.WaitOptions
if _, err := containerEngine.ContainerWait(r.Context(), []string{name}, opts); err != nil {
if _, err := utils.WaitContainer(w, r); err != nil {
utils.Error(w, "Something went wrong.", http.StatusInternalServerError, err)
return
}

View File

@ -95,6 +95,15 @@ class TestContainers(unittest.TestCase):
top.reload()
self.assertIn(top.status, ("stopped", "exited"))
def test_kill_container(self):
top = self.client.containers.get(TestContainers.topContainerId)
self.assertEqual(top.status, "running")
# Kill a running container and validate the state
top.kill()
top.reload()
self.assertIn(top.status, ("stopped", "exited"))
def test_restart_container(self):
# Validate the container state
top = self.client.containers.get(TestContainers.topContainerId)