GNU bug report logs - #51400
--check, --rounds and --keep-failed used together produce empty store items

Previous Next

Package: guix;

Reported by: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>

Date: Tue, 26 Oct 2021 02:19:01 UTC

Severity: important

Full log


View this message in rfc822 format

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: 51400 <at> debbugs.gnu.org
Subject: bug#51400: --check, --rounds and --keep-failed used together produce empty store items
Date: Mon, 25 Oct 2021 22:18:16 -0400
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:

--8<---------------cut here---------------start------------->8---
$ 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
--8<---------------cut here---------------end--------------->8---

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




This bug report was last modified 3 years and 209 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.