Subject: bug#23581: Grafted binaries crash

From: [email-masked] (Ludovic Courtès)
Date: Sat, 21 May 2016 00:19:50 +0200

[email-masked] (Ludovic Courtès) skribis:

> Bus-eraro(nekropsio elŝutita)

I was able to reproduce the bus error by grafting in ENOSPC conditions:

--8<---------------cut here---------------start------------->8---
@ build-started /gnu/store/dc8pxfdmmp35cpivsr78bwfp15ppx5ih-icecat-38.8.0-gnu1.drv - x86_64-linux /var/log/guix/drvs/dc//8pxfdmmp35cpivsr78bwfp15ppx5ih-icecat-38.8.0-gnu1.drv.bz2
grafting '/gnu/store/5z1q4zw73r8cx409qbmh7abhd6llm31c-icecat-38.8.0-gnu1' -> '/gnu/store/yahn165sj4ajx0zklgql6s4yiadmdpay-icecat-38.8.0-gnu1'...
In thread:
ERROR: In procedure scm_flush: No space left on device
In thread:
ERROR: In procedure scm_flush: No space left on device
Backtrace:
In unknown file:
   ?: 2 [apply-smob/1 #<catch-closure 8c96e0> quit #<unspecified>]
In ice-9/boot-9.scm:
 157: 1 [catch #t #<catch-closure 1d54ce0> ...]
In unknown file:
   ?: 0 [apply-smob/1 #<catch-closure 1d54ce0>]

ERROR: In procedure apply-smob/1:
ERROR: In procedure scm_flush: No space left on device
@ build-succeeded /gnu/store/dc8pxfdmmp35cpivsr78bwfp15ppx5ih-icecat-38.8.0-gnu1.drv -
@ build-started /gnu/store/3phgf8166l7dahscy5si13cky49yfwp7-conkeror-1.0pre1.20150730.drv - x86_64-linux /var/log/guix/drvs/3p//hgf8166l7dahscy5si13cky49yfwp7-conkeror-1.0pre1.20150730.drv.bz2
grafting '/gnu/store/19hbrx9nhr9g5a2am8yxhd7i7rn778j5-conkeror-1.0pre1.20150730' -> '/gnu/store/n5swnzg1gr48x53q3hjn953nph4vbz1l-conkeror-1.0pre1.20150730'...
@ build-succeeded /gnu/store/3phgf8166l7dahscy5si13cky49yfwp7-conkeror-1.0pre1.20150730.drv -
/gnu/store/n5swnzg1gr48x53q3hjn953nph4vbz1l-conkeror-1.0pre1.20150730
$ /gnu/store/n5swnzg1gr48x53q3hjn953nph4vbz1l-conkeror-1.0pre1.20150730/bin/conkeror
Bus-eraro
--8<---------------cut here---------------end--------------->8---

Note that, despite ENOSPC, the grafting derivation is marked as
succeeding.

After making some space, rebuilding the same derivation yields a
Conkeror that actually works.

The fix will be to error out upon ENOSPC.

Ludo’.