Tests fail when 'HOME' is unset

  • Done
  • quality assurance status badge
Details
2 participants
  • Cook, Malcolm
  • Ludovic Courtès
Owner
unassigned
Submitted by
Cook, Malcolm
Severity
normal
C
C
Cook, Malcolm wrote on 31 Mar 2016 00:37
RE: Test suite failures building 0.10.0 on CentOS7
(name . 'Ludovic Courtès')(address . ludo@gnu.org)
b663a59849944874a8d36fe4ee59d621@exchsrv2.sgc.loc
Thanks Ludo',
Thanks for the reminder about https://www.gnu.org/software/guix/manual/html_node/Running-the-Test-Suite.html I note there too that I should be emailing bug-guix@gnu.org instead of guix-devel. I've cc:ed it this time. What is the best going forward?
I am building the release from git since I want to ./configure with a non-standard --localstatedir of /gnu/var (where /gnu is shared and nfs mounted and will be used across multiple linux computational servers).
Perhaps is there another way to effect this? Without reviewing all the code I did not know how to determine this.
In any case I have reduced the issues by adding to my install mantra:
export ACLOCAL_PATH=/usr/share/aclocal # as per https://www.gnu.org/software/guix/manual/guix.html#Building-from-Git
So now only one test fails, guix-lint, before I "give up" as progress on `make check` seems halted (0 cpu per top, yet still build processes including daemons running).
Most oddly, there is no .log file for this test, though one DOES exist in the tests subdirectory. It ends like this:
ERROR: In procedure string-append:
ERROR: In procedure string-append: Wrong type (expecting string): #f'
+ rm -rf t-guix-lint-2602
./test-env: line 1: 2601 Terminated "/tmp/tmp.zS2DFhXOOe/pre-inst-env" "/tmp/tmp.zS2DFhXOOe/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
I have attached it in its entirety.
There is no test-suite.log file. Is this because I interrupted the `make check` build before all test
I have the following CentOS7 rpms since either they are listed https://www.gnu.org/software/guix/manual/html_node/Requirements.html#Requirements or I found I needed them.
sudo yum -y info ${guixRpmDeps} | grep -P '^(Name.*|Version.*|)$'
Name : autoconf
Version : 2.69
Name : automake
Version : 1.13.4
Name : bzip2
Version : 1.0.6
Name : gettext
Version : 0.18.2.1
Name : gettext-devel
Version : 0.18.2.1
Name : gnupg2
Version : 2.0.22
Name : gnutls
Version : 3.3.8
Name : graphviz
Version : 2.30.1
Name : guile
Version : 2.0.9
Name : guile-devel
Version : 2.0.9
Name : help2man
Version : 1.41.1
Name : libgcrypt-devel
Version : 1.5.3
Name : make
Version : 3.82
Name : pkgconfig
Version : 0.27.1
Name : sqlite
Version : 3.7.17
Name : sqlite-devel
Version : 3.7.17
Name : texinfo
Version : 5.1
Name : texinfo-tex
Version : 5.1
Name : gettext-devel
Version : 0.18.2.1
Name : gnutls
Version : 3.3.8
Name : graphviz
Version : 2.30.1
Name : guile
Version : 2.0.9
Name : guile-devel
Version : 2.0.9
Name : libgcrypt-devel
Version : 1.5.3
Name : pkgconfig
Version : 0.27.1
Name : sqlite
Version : 3.7.17
Name : sqlite-devel
Version : 3.7.17
I'm up to here before I killed the check:
PASS: tests/base64.scm
PASS: tests/sets.scm
PASS: tests/hash.scm
PASS: tests/base32.scm
PASS: tests/pki.scm
PASS: tests/pk-crypto.scm
PASS: tests/cpio.scm
PASS: tests/gnu-maintenance.scm
PASS: tests/upstream.scm
PASS: tests/substitute.scm
PASS: tests/grafts.scm
PASS: tests/ui.scm
PASS: tests/snix.scm
PASS: tests/build-utils.scm
PASS: tests/utils.scm
PASS: tests/records.scm
PASS: tests/hackage.scm
PASS: tests/cran.scm
PASS: tests/gremlin.scm
PASS: tests/syscalls.scm
PASS: tests/scripts.scm
PASS: tests/elpa.scm
PASS: tests/size.scm
PASS: tests/nar.scm
PASS: tests/file-systems.scm
PASS: tests/cve.scm
PASS: tests/union.scm
SKIP: tests/containers.scm
PASS: tests/import-utils.scm
PASS: tests/system.scm
PASS: tests/services.scm
PASS: tests/challenge.scm
PASS: tests/scripts-build.scm
PASS: tests/guix-download.sh
PASS: tests/guix-hash.sh
SKIP: tests/guix-environment-container.sh
PASS: tests/profiles.scm
PASS: tests/guix-authenticate.sh
PASS: tests/monads.scm
PASS: tests/lint.scm
PASS: tests/graph.scm
PASS: tests/gexp.scm
FAIL: tests/guix-lint.sh
PASS: tests/guix-register.sh
PASS: tests/guix-archive.sh
PASS: tests/derivations.scm
PASS: tests/guix-daemon.sh
PASS: tests/guix-graph.sh
PASS: tests/store.scm
PASS: tests/packages.scm
PASS: tests/guix-system.sh
PASS: tests/guix-package-net.sh
PASS: tests/guix-package.sh
PASS: tests/guix-build.sh
PASS: tests/guix-environment.sh
PASS: tests/builders.scm
> -----Original Message-----
> From: Ludovic Courtès [mailto:ludo@gnu.org]
> Sent: Wednesday, March 30, 2016 4:14 PM
> To: Cook, Malcolm <MEC@stowers.org>
> Cc: Guix-devel <guix-devel@gnu.org>
> Subject: Re: Test suite failures building 0.10.0 on CentOS7
>
> "Cook, Malcolm" <MEC@stowers.org> skribis:
>
> > I am building and testing as follows:
> >
> > env -i PATH=${PATH} bash ## build in a clean shell
> > bld=$(mktemp -d) ## in a clean, new, empty directory
> > cd $bld
> > git clone git://git.savannah.gnu.org/guix.git --branch v0.10.0 guix@v0.10.0
> > cd guix@v0.10.0
>
> Since you’re building the release, I strongly recommend using the
> release tarball at <ftp://alpha.gnu.org/gnu/guix/guix-0.10.0.tar.gz>
> instead of a Git checkout. The release tarball is “bootstrapped”, so
> you wouldn’t have to run ./bootstrap, and we’d be safer overall. :-)
>
> > make -j20 |& tee LOGS/make.log
> > make -j20 check |& tee LOGS/make.check.log
>
> It wouldn’t make a big difference in this case, but in the future it’d
> be best to return the .log files as mentioned at
> Suite.html>.
>
> > tests/builders.log:configure: error: in `/tmp/guix-build-make-boot0-4.1.drv-
> 0/make-4.1':
> > tests/builders.log:configure: error: C compiler cannot create executables
>
> This appears to be the crux of the problem.
>
> Could you run this command from the build tree:
>
> ./test-env guix build -e '(@@ (gnu packages commencement) gnu-make-
> boot0)' -K
>
> This should fail with the same error as above, but it should leave a
> directory called /tmp/guix-build-make-boot0-4.1.drv-0; could you post
> the make-4.1/config.log file from that directory?
>
> Thank you for your report!
>
> Ludo’.
Attachment: guix-lint.log (.00 MiB)
L
L
Ludovic Courtès wrote on 31 Mar 2016 10:00
Re: Test suite failures building 0.10.0 on CentOS7
(name . Cook, Malcolm)(address . MEC@stowers.org)
87lh4zcc1e.fsf@gnu.org
"Cook, Malcolm" <MEC@stowers.org> skribis:

Toggle quote (2 lines)
> Thanks for the reminder about https://www.gnu.org/software/guix/manual/html_node/Running-the-Test-Suite.html I note there too that I should be emailing bug-guix@gnu.org instead of guix-devel. I've cc:ed it this time. What is the best going forward?

Yeah, using bug-guix@gnu.org for bug reports is the best way.

Toggle quote (3 lines)
> I am building the release from git since I want to ./configure with a
> non-standard --localstatedir of /gnu/var

This can also be done when building from the tarball: just run

tar xf guix-0.10.0.tar.gz
cd guix-0.10.0
./configure --localstatedir=/gnu/var

Toggle quote (4 lines)
> In any case I have reduced the issues by adding to my install mantra:
>
> export ACLOCAL_PATH=/usr/share/aclocal # as per https://www.gnu.org/software/guix/manual/guix.html#Building-from-Git

Another reason for using the release tarball: there’d be no such issues!
:-)

Toggle quote (10 lines)
> In guix/cve.scm:
> 76: 2 [call-with-cve-port # 518400 ...]
> In guix/http-client.scm:
> 300: 1 [http-fetch/cached # # 518400 ...]
> In unknown file:
> ?: 0 [string-append #f "/http/" "Fjb931UJRoTPOjHq6hc1oawK9bCopdhOoX9grKLx71Q="]
>
> ERROR: In procedure string-append:
> ERROR: In procedure string-append: Wrong type (expecting string): #f'

This is a harmless failure: it indicates that neither the HOME nor the
XDG_CACHE_HOME environment variables are defined in the build
environment. Could you define one of these (they can point any writable
directory) and run ‘make recheck’?

Surely we should handle this situation better. I guess
‘cache-directory’ in (guix utils) should just error out in such a case,
with a clear error message. Thoughts?

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 18 Apr 2016 19:44
Re: bug#23165: Test suite failures building 0.10.0 on CentOS7
(name . Cook, Malcolm)(address . MEC@stowers.org)
87a8kq95hc.fsf@gnu.org
retitle 23165 Tests fail when 'HOME' is unset
close 23165
thanks

ludo@gnu.org (Ludovic Courtès) skribis:

Toggle quote (2 lines)
> "Cook, Malcolm" <MEC@stowers.org> skribis:

[...]

Toggle quote (14 lines)
>> In guix/cve.scm:
>> 76: 2 [call-with-cve-port # 518400 ...]
>> In guix/http-client.scm:
>> 300: 1 [http-fetch/cached # # 518400 ...]
>> In unknown file:
>> ?: 0 [string-append #f "/http/" "Fjb931UJRoTPOjHq6hc1oawK9bCopdhOoX9grKLx71Q="]
>>
>> ERROR: In procedure string-append:
>> ERROR: In procedure string-append: Wrong type (expecting string): #f'
>
> This is a harmless failure: it indicates that neither the HOME nor the
> XDG_CACHE_HOME environment variables are defined in the build
> environment.

Commit dd1d09f7e4c522d2185eda9c806ea525e10172be should avoid this
situation.

Ludo’.
?