Subject: bug#30250: Two failures on ‘make -k "-j$(nproc)" check’

From: [email-masked] (Ludovic Courtès)
Date: Sat, 27 Jan 2018 16:48:44 +0100

Hi Jorge,

"Jorge" <[email-masked]> skribis:

> I use ntlmaps (listening on localhost:5865) to mediate the corporate proxy for programs that do not integrate with Gnome's proxy configuration
> ==================================================
>    GNU Guix 0.14.0.1193-4f34e: ./test-suite.log
> ==================================================
>
> # TOTAL: 744
> # PASS:  718
> # SKIP:  24
> # XFAIL: 0
> # FAIL:  2
> # XPASS: 0
> # ERROR: 0

[...]

> test-name: add-to-store, flat
> location: /home/jorge/repos/guix/tests/derivations.scm:98
> source:
> + (test-assert
> +   "add-to-store, flat"
> +   (let* ((file (search-path
> +                  %load-path
> +                  "language/tree-il/spec.scm"))
> +          (drv (add-to-store
> +                 %store
> +                 "flat-test"
> +                 #f
> +                 "sha256"
> +                 file)))
> +     (and (eq? 'regular (stat:type (stat drv)))
> +          (valid-path? %store drv)
> +          (equal?
> +            (call-with-input-file file get-bytevector-all)
> +            (call-with-input-file drv get-bytevector-all)))))
> actual-value: #f
> actual-error:
> + (srfi-34
> +   #<condition &nix-protocol-error [message: "regular file expected" status: 1] 5577e11973c0>)
> result: FAIL

It looks like the language/tree-il/spec.scm file (which is part of
Guile) that was found in $GUILE_LOAD_PATH on your system is not a
regular file and is instead presumably a symlink.  Could you check that
this is the case?

The solution would be for it to be a regular file and/or for the test to
check that.

> test-name: 'download' built-in builder
> location: /home/jorge/repos/guix/tests/derivations.scm:227
> source:
> + (test-assert
> +   "'download' built-in builder"
> +   (let ((text (random-text)))
> +     (with-http-server
> +       200
> +       text
> +       (let* ((drv (derivation
> +                     %store
> +                     "world"
> +                     "builtin:download"
> +                     '()
> +                     #:env-vars
> +                     `(("url" unquote (object->string (%local-url))))
> +                     #:hash-algo
> +                     'sha256
> +                     #:hash
> +                     (sha256 (string->utf8 text)))))
> +         (and (build-derivations %store (list drv))
> +              (string=?
> +                (call-with-input-file
> +                  (derivation->output-path drv)
> +                  get-string-all)
> +                text))))))
> @ build-started /home/jorge/repos/guix/test-tmp/store/24ibbvll6jdr9ri6qp7z1vgcl4vjljwv-world.drv - x86_64-linux /home/jorge/repos/guix/test-tmp/var/log/guix/drvs/24//ibbvll6jdr9ri6qp7z1vgcl4vjljwv-world.drv.bz2
>
> Starting download of /home/jorge/repos/guix/test-tmp/store/25k9f37z2l775rbj4kianf5g1k9vnczj-world
> From http://localhost:10500/foo/bar...
> download failed "http://localhost:10500/foo/bar" 503 "Service Unavailable"
> failed to download "/home/jorge/repos/guix/test-tmp/store/25k9f37z2l775rbj4kianf5g1k9vnczj-world" from "http://localhost:10500/foo/bar"
> builder for `/home/jorge/repos/guix/test-tmp/store/24ibbvll6jdr9ri6qp7z1vgcl4vjljwv-world.drv' failed to produce output path `/home/jorge/repos/guix/test-tmp/store/25k9f37z2l775rbj4kianf5g1k9vnczj-world'
> @ build-failed /home/jorge/repos/guix/test-tmp/store/24ibbvll6jdr9ri6qp7z1vgcl4vjljwv-world.drv - 1 builder for `/home/jorge/repos/guix/test-tmp/store/24ibbvll6jdr9ri6qp7z1vgcl4vjljwv-world.drv' failed to produce output path `/home/jorge/repos/guix/test-tmp/store/25k9f37z2l775rbj4kianf5g1k9vnczj-world'
> actual-value: #f
> actual-error:
> + (srfi-34
> +   #<condition &nix-protocol-error [message: "build of `/home/jorge/repos/guix/test-tmp/store/24ibbvll6jdr9ri6qp7z1vgcl4vjljwv-world.drv' failed" status: 1] 5577e21fdde0>)
> result: FAIL

This test runs its own HTTP server on port 10500.  Could it be that it
try to go through your proxy and failed?  Can you check whether this
works:

  unset http_proxy
  make check TESTS=tests/derivations.scm

?

Thanks for your report!

Ludo’.