From 11c7d349610736f775a9ce92c64327b4fda6a9d7 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Thu, 16 Jan 2020 18:02:35 +0100 Subject: [PATCH] start: fix container killing logic We need to account for the case where pidfd's are not supported by the kernel in question. Closes: #3254 Signed-off-by: Christian Brauner --- src/lxc/start.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lxc/start.c b/src/lxc/start.c index 9ca85911c..d70ffdf0e 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -1094,11 +1094,13 @@ void lxc_abort(const char *name, struct lxc_handler *handler) if (handler->pidfd >= 0) { ret = lxc_raw_pidfd_send_signal(handler->pidfd, SIGKILL, NULL, 0); if (ret) - SYSWARN("Failed to send SIGKILL via pidfd %d for process %d", handler->pidfd, handler->pid); + SYSWARN("Failed to send SIGKILL via pidfd %d for process %d", + handler->pidfd, handler->pid); } - if (ret && (errno != ESRCH) && kill(handler->pid, SIGKILL)) - SYSERROR("Failed to send SIGKILL to %d", handler->pid); + if (!ret || errno != ESRCH) + if (kill(handler->pid, SIGKILL)) + SYSWARN("Failed to send SIGKILL to %d", handler->pid); do { ret = waitpid(-1, &status, 0); -- 2.47.2