summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-04-10 23:48:03 +0200
committerLudovic Courtès <ludo@gnu.org>2022-04-11 00:25:33 +0200
commitf42959662765d1cd47137ff5da09086fc6a62e99 (patch)
tree275d1175ef9ece059287d1b02f62830340daa839
parentada530acb1e848daaac027872e6bad067e82207b (diff)
downloadguix-f42959662765d1cd47137ff5da09086fc6a62e99.tar.gz
shepherd: 'fork+exec-command/container' always returns a PID.
Fixes a regression introduced in
938448bf40fc77092859352d2243e2d0c236375f whereby
'fork+exec-command/container' would return #t, then used as the running
value of the 'guix-daemon' service in the installer.  Upon installation
completion, stopping the 'guix-daemon' service would fail with
wrong-type-arg because that #t would be passed to the 'stop' method in
lieu of a PID.

* gnu/build/shepherd.scm (fork+exec-command/container): Return a PID
rather than #t.
-rw-r--r--gnu/build/shepherd.scm2
1 files changed, 1 insertions, 1 deletions
diff --git a/gnu/build/shepherd.scm b/gnu/build/shepherd.scm
index 474054f645..595db40f2e 100644
--- a/gnu/build/shepherd.scm
+++ b/gnu/build/shepherd.scm
@@ -240,7 +240,7 @@ on Hurd systems for instance, fallback to direct forking."
                      (apply exec-command* command (strip-pid args)))
                    (lambda ()
                      (primitive-_exit 127))))
-              (pid #t))))
+              (pid pid))))               ;XXX: assuming the same PID namespace
         (apply fork+exec-command command (strip-pid args)))))
 
 ;; Local Variables: