--check, --rounds and --keep-failed used together produce empty store items

  • Open
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Maxim Cournoyer
Severity
important

Debbugs page

M
M
Maxim Cournoyer wrote on 25 Oct 2021 19:18
(name . bug-guix)(address . bug-guix@gnu.org)
87y26gfs0n.fsf@gmail.com
Hello,

While debugging while guix substitution would fail with a "corrupt input
while restoring ..." error message, I saw in the guix-substitute strace
output that it was attempting to substitute a nonexistent store item.

I then narrowed the production of such broken store item to using the
following guix build options together:

Toggle snippet (10 lines)
$ guix build hello --check --rounds=2 --keep-failed
[...]
successfully built /gnu/store/260bk0ch4np4h2yz5yqhf8hjbsyhwpmr-hello-2.10.drv
successfully built /gnu/store/260bk0ch4np4h2yz5yqhf8hjbsyhwpmr-hello-2.10.drv
/gnu/store/81bdcd5x4v50i28h98bfkvvkx9cky63w-hello-2.10

stat /gnu/store/81bdcd5x4v50i28h98bfkvvkx9cky63w-hello-2.10
stat: cannot statx '/gnu/store/81bdcd5x4v50i28h98bfkvvkx9cky63w-hello-2.10': No such file or directory

That's bad, especially since a subsequent 'guix build hello' doesn't fix
it (it keeps the corrupted cached item, even with --check!).

One needs to run

$ guix gc -D /gnu/store/81bdcd5x4v50i28h98bfkvvkx9cky63w-hello-2.10
$ guix build hello

to recover :-/.

This bug was probably exposed via
0fa0e8df60b0b005a8d9499562464c5a66218a5b, which enabled using --check
along with --rounds.

Thanks,

Maxim
L
L
Ludovic Courtès wrote on 19 Nov 2021 06:48
control message for bug #51400
(address . control@debbugs.gnu.org)
878rxkkxq0.fsf@gnu.org
severity 51400 important
quit
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 51400@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 51400
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch