GNU bug report logs - #18935
gexp->derivation test failure

Previous Next

Package: guix;

Reported by: Mark H Weaver <mhw <at> netris.org>

Date: Mon, 3 Nov 2014 15:53:02 UTC

Severity: normal

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


Message #10 received at 18935-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Mark H Weaver <mhw <at> netris.org>
Cc: 18935-done <at> debbugs.gnu.org
Subject: Re: bug#18935: gexp->derivation test failure
Date: Tue, 04 Nov 2014 21:20:08 +0100
Mark H Weaver <mhw <at> netris.org> skribis:

> Test begin:
>   test-name: "gexp->derivation"
>   source-file: "tests/gexp.scm"
>   source-line: 227
>   source-form: (test-assert "gexp->derivation" (run-with-store %store (mlet* %store-monad ((file (text-file "foo" "Hello, world!")) (exp -> (gexp (begin (mkdir (ungexp output)) (chdir (ungexp output)) (symlink (string-append (ungexp %bootstrap-guile) "/bin/guile") "foo") (symlink (ungexp file) (ungexp output "2nd"))))) (drv (gexp->derivation "foo" exp)) (out -> (derivation->output-path drv)) (out2 -> (derivation->output-path drv "2nd")) (done (built-derivations (list drv))) (refs ((store-lift references) out)) (refs2 ((store-lift references) out2)) (guile (package-file %bootstrap-guile "bin/guile"))) (return (and (string=? (readlink (string-append out "/foo")) guile) (string=? (readlink out2) file) (equal? refs (list (dirname (dirname guile)))) (equal? refs2 (list file))))) #:guile-for-build (%guile-for-build)))
> Test end:
>   result-kind: fail
>   actual-value: #f
>   actual-error: (srfi-34 #<condition &nix-protocol-error [message: "path `/tmp/nix-build-guix-0.7.14e84b2.drv-0/source/test-tmp/store/ry17r3hm48ckcchz9ls6yhd00alyiipx-foo' is not valid" status: 1] a587d68>)

This can only happen if FILE in that test were deleted after its
creation and before the ‘gexp-derivation’...  which cannot even happen
since FILE remains live for the duration of the ‘%store’ session...
except if another daemon instance deletes it!

Commit 834ea02 fixes that: it turns out that tests/nar.scm was creating
the exact same store item, and then calling the GC to delete it.

I’ll update the Guix snapshot in Guix.  (In the meantime, chances are
that you can just restart the build and won’t stumble upon this bug,
which was unlikely to occur.)

While looking at this code, I fixed a small issue with caches in
000c59b.

Thanks,
Ludo’.




This bug report was last modified 10 years and 199 days ago.

Previous Next


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