Commit 6b03ec8ad6 ("common: Move exit-with-parent code from include/
to utils/") was supposed to be a largely neutral refactoring of the
--exit-with-parent flag.  However I made a mistake in one hunk of that
patch:

    -#ifdef HAVE_EXIT_WITH_PARENT
    -  if (exit_with_parent) {
    -    if (set_exit_with_parent () == -1) {
    -      perror ("nbdkit: --exit-with-parent");
    -      exit (EXIT_FAILURE);
    -    }
    +  if (set_exit_with_parent () == -1) {
    +    perror ("nbdkit: --exit-with-parent");
    +    exit (EXIT_FAILURE);
       }
    -#endif

by removing the test for exit_with_parent.  The effect is similar to
if we always specified --exit-with-parent when nbdkit is running in
the foreground.

Somewhat surprisingly this didn't have any noticable effect.  That's
for a few of reasons: (1) Mostly if you don't fork then you should be
using --exit-with-parent (and the bulk of the tests do this).  (2) If
we do fork into the background then the PR_SET_PDEATHSIG flag is
cleared by Linux across the fork.  (3) It actually _did_ break Windows
because there set_exit_with_parent calls abort, but for unrelated
reasons our Windows CI was broken (and never tested running
nbdkit.exe).

Fix this with the obvious adjustment.

This broke nbdkit 1.32 and 1.34.

Fixes: commit 6b03ec8ad672e5956b41cbacae9c307e5acd786b
---
 server/main.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/server/main.c b/server/main.c
index c3b9bf384..1df5d69ac 100644
--- a/server/main.c
+++ b/server/main.c
@@ -574,9 +574,11 @@ main (int argc, char *argv[])
   /* Implement --exit-with-parent early in case plugin initialization
    * takes a long time and the parent exits during that time.
    */
-  if (set_exit_with_parent () == -1) {
-    perror ("nbdkit: --exit-with-parent");
-    exit (EXIT_FAILURE);
+  if (exit_with_parent) {
+    if (set_exit_with_parent () == -1) {
+      perror ("nbdkit: --exit-with-parent");
+      exit (EXIT_FAILURE);
+    }
   }
 
   /* If the user has mixed up -p/--run/-s/-U/--vsock options, then
-- 
2.39.2

_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to