The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxc/pull/3249

This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.

=== Description (from pull-request) ===
Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com>
From 1126d14815697d414a277847d38bc2af92bd4d79 Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brau...@ubuntu.com>
Date: Thu, 9 Jan 2020 12:28:19 +0100
Subject: [PATCH 1/3] mainloop: add missing \n

Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com>
---
 src/lxc/mainloop.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lxc/mainloop.c b/src/lxc/mainloop.c
index 3a31ed7b1b..2ef5a93e6b 100644
--- a/src/lxc/mainloop.c
+++ b/src/lxc/mainloop.c
@@ -65,6 +65,7 @@ int lxc_mainloop_add_handler(struct lxc_epoll_descr *descr, 
int fd,
        struct epoll_event ev;
        struct mainloop_handler *handler;
        struct lxc_list *item;
+
        if (fd < 0)
                return -1;
 

From 38bbeb799e33130932ff3d20f57ab060c184675a Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brau...@ubuntu.com>
Date: Thu, 9 Jan 2020 12:28:54 +0100
Subject: [PATCH 2/3] tests: timeout after 60 seconds

That should be more than enough to reboot.

Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com>
---
 src/tests/api_reboot.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/api_reboot.c b/src/tests/api_reboot.c
index 730d6a81a5..f6864e8777 100644
--- a/src/tests/api_reboot.c
+++ b/src/tests/api_reboot.c
@@ -84,7 +84,7 @@ int main(int argc, char *argv[])
                 */
                sleep(5);
 
-               if (!c->reboot2(c, -1)) {
+               if (!c->reboot2(c, 60)) {
                        lxc_error("%s\n", "Failed to reboot container 
\"reboot\"");
                        goto on_error_stop;
                }

From c718fac1855da04d221bf7055c981efeb6a323bc Mon Sep 17 00:00:00 2001
From: Christian Brauner <christian.brau...@ubuntu.com>
Date: Thu, 9 Jan 2020 12:25:30 +0100
Subject: [PATCH 3/3] start: handle kernel header and kernel incompatability

We might e.g. be compiled in a container with old kernel headers. In this
scenario CLONE_PIDFD will work but pidfd_send_signal() might not be detected
because __NR_pidfd_send_signal is not defined because the kernel headers don't
match the kernel version.

This explains and fixes test-suite hangs on Jenkins I've recently debugged.

Signed-off-by: Christian Brauner <christian.brau...@ubuntu.com>
---
 src/lxc/start.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/lxc/start.c b/src/lxc/start.c
index f085aa60d0..9ca85911ce 100644
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -1091,11 +1091,13 @@ void lxc_abort(const char *name, struct lxc_handler 
*handler)
 
        lxc_set_state(name, handler, ABORTING);
 
-       if (handler->pidfd >= 0)
+       if (handler->pidfd >= 0) {
                ret = lxc_raw_pidfd_send_signal(handler->pidfd, SIGKILL, NULL, 
0);
-       else if (handler->pid > 0)
-               ret = kill(handler->pid, SIGKILL);
-       if (ret < 0)
+               if (ret)
+                       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);
 
        do {
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to