diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch')
-rw-r--r-- | meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch deleted file mode 100644 index 96a814ff8b..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martin Wilck <mwilck@suse.com> -Date: Wed, 21 Mar 2018 10:34:19 +0100 -Subject: [PATCH] multipathd: handle errors in uxlsnr as fatal - -The ppoll() calls of the uxlsnr thread are vital for proper functioning of -multipathd. If the uxlsnr thread can't open the socket or fails to call ppoll() -for other reasons, quit the daemon. If we don't do that, multipathd may -hang in a state where it can't be terminated any more, because the uxlsnr -thread is responsible for handling all signals. This happens e.g. if -systemd's multipathd.socket is running in and multipathd is started from -outside systemd. - -24f2844 "multipathd: fix signal blocking logic" has made this problem more -severe. Before that patch, the signals weren't actually blocked in any thread. -That's not to say 24f2844 was wrong. I still think it's correct, we just -need this one on top. - -Signed-off-by: Martin Wilck <mwilck@suse.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - multipathd/uxlsnr.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/multipathd/uxlsnr.c b/multipathd/uxlsnr.c -index cdafd82..6f66666 100644 ---- a/multipathd/uxlsnr.c -+++ b/multipathd/uxlsnr.c -@@ -178,7 +178,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) - - if (ux_sock == -1) { - condlog(1, "could not create uxsock: %d", errno); -- return NULL; -+ exit_daemon(); - } - - pthread_cleanup_push(uxsock_cleanup, (void *)ux_sock); -@@ -187,7 +187,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) - polls = (struct pollfd *)MALLOC((MIN_POLLS + 1) * sizeof(struct pollfd)); - if (!polls) { - condlog(0, "uxsock: failed to allocate poll fds"); -- return NULL; -+ exit_daemon(); - } - sigfillset(&mask); - sigdelset(&mask, SIGINT); -@@ -249,6 +249,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) - - /* something went badly wrong! */ - condlog(0, "uxsock: poll failed with %d", errno); -+ exit_daemon(); - break; - } - --- -2.7.4 - |