summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-03-17 14:39:23 +0100
committerLudovic Courtès <ludo@gnu.org>2019-03-17 16:30:00 +0100
commite6c46ec42ea6e986b1030a145cb391235b689735 (patch)
treef593db358889f29372cd94839e86be2a36e02dc6
parenta5c6a752fde2bc97f8df8d906146964816409470 (diff)
downloadguix-e6c46ec42ea6e986b1030a145cb391235b689735.tar.gz
vm: 'expression->derivation-in-linux-vm' leads to a kernel panic upon failure.
Partially fixes <https://bugs.gnu.org/34276>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.

* gnu/system/vm.scm (expression->derivation-in-linux-vm)[loader]: Call
'exit' when USER-BUILDER exits with a non-zero code.
-rw-r--r--gnu/system/vm.scm5
1 files changed, 3 insertions, 2 deletions
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index e561285964..b671c74ab8 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -187,8 +187,9 @@ made available under the /xchg CIFS share."
                   ;; When USER-BUILDER succeeds, reboot (indicating a
                   ;; success), otherwise die, which causes a kernel panic
                   ;; ("Attempted to kill init!").
-                  #~(when (zero? (system* #$user-builder))
-                      (reboot))))
+                  #~(if (zero? (system* #$user-builder))
+                        (reboot)
+                        (exit 1))))
 
   (let ((initrd (or initrd
                     (base-initrd file-systems