make check fails on 182be30fb1a8b847c30492462ec22c08ec7a9849

  • Done
  • quality assurance status badge
Details
3 participants
  • Josselin Poiret
  • Janneke Nieuwenhuizen
  • Ludovic Courtès
Owner
unassigned
Submitted by
Janneke Nieuwenhuizen
Severity
normal
Merged with
J
J
Janneke Nieuwenhuizen wrote on 21 Jul 2023 08:47
(address . bug-guix@gnu.org)
87cz0lu5f3.fsf@gnu.org
Hi,

Make check gives three failures for me on current master

FAIL: tests/packages (package->bag)
FAIL: tests/store-roots (gc-roots, initial)
FAIL: tests/texlive (texlive->guix-package, meta-package)

using this snippet.

Toggle snippet (4 lines)
export SCM_LOG_DRIVER_FLAGS="--select='^(package->bag|gc-roots, initial|texlive->guix-package, meta-package)'"
make check TESTS="tests/packages.scm tests/store-roots.scm tests/texlive.scm"

Find log excerpts attached.

I have bisected the first (package->bag) to be broken by

0dd293b4d9095137c9952e16ca951f887b7e7018
gnu: Add libc-for-target and glibc/hurd.

but as yet fail to why.

Greetings,
Janneke
Attachment: packages.log
Attachment: store-roots.log
Attachment: texlive.log
--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Josselin Poiret wrote on 21 Jul 2023 12:12
877cqtfu95.fsf@jpoiret.xyz
Hi Janneke,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (10 lines)
> Hi,
>
> Make check gives three failures for me on current master
>
> FAIL: tests/packages (package->bag)
> FAIL: tests/store-roots (gc-roots, initial)
> FAIL: tests/texlive (texlive->guix-package, meta-package)
>
> using this snippet.

I have local fixes for all of them, but I am not 100% sure about the
gc-roots one. Ludo, WDYT? Also, guix-shell fails on the fdes test
locally for me, probably because I'm using zsh. All should be fine in
the package though.

Best,

Josselin Poiret
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmS6WhYQHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5Fhcain5vC/0azPxZd9oXvDXQDceQkmX7m9AxDRIEmBnW
52oJNWo216QmZxkzR/PfMy7XZMNS0CAGCsGMas6VgiBm2bDck1Pj0tcqUfZt9nCP
aECdf29KwBj9GK732fOj8kenjUL9NJrJAD0fvF3NitQDfJJm0ASUpODGm3ihpYr2
YIZlicik9RltLANgOI51a7s2h9vzqsbYUcPtVP9TvuZfiwa8z2IkfJWFfCnJBph9
Otf7Rh6PBuhRUfZmVrLRMrnwUN/tcw7LFhPo94fibexrUa6yyVoIc1/68fNty4J0
6d7TgPmpfafrLZs016e17bcxlC7k8nZ/C1LyWSG7TL6cQLxLjBGvME6GXLMSDVSu
mvaRP1cokvZMFONuR7EKIItJeVYBmi175j4zxRPf67Wuj6UVT+aB/nSB6QlO8vAN
SWxsXljC7JTHtdysqmQjvMevwFsAeBImJfhi4yQwUdJPpTIRogj+eQJzHmHZz870
lhXDzALo8Slxr3j/ZY/HMFINNrm7LWQ=
=CuFl
-----END PGP SIGNATURE-----

J
J
Josselin Poiret wrote on 21 Jul 2023 12:14
[PATCH 1/3] tests: packages: Set system for expected result of package->bag.
(name . Ludovic Courtès)(address . ludo@gnu.org)
37df96c0b74c4cc20191eb05a7fcc2ee69d586f0.1689934453.git.dev@jpoiret.xyz
From: Josselin Poiret <dev@jpoiret.xyz>

* tests/packages.scm ("package->bag"): Parameterize the expected result by the
system used to lower the package to a bag.
---
tests/packages.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (20 lines)
diff --git a/tests/packages.scm b/tests/packages.scm
index 2b7ab01f7d..2b4f9f8e90 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -1277,8 +1277,9 @@ (define compressors '(("gzip" . "gz")
;; #:guile guile))))
(test-equal "package->bag"
- `("foo86-hurd" #f (,(package-source gnu-make))
- (,(canonical-package glibc)) (,(canonical-package coreutils)))
+ (parameterize ((%current-system "foo86-hurd"))
+ `("foo86-hurd" #f (,(package-source gnu-make))
+ (,(canonical-package glibc)) (,(canonical-package coreutils))))
(let ((bag (package->bag gnu-make "foo86-hurd")))
(list (bag-system bag) (bag-target bag)
(assoc-ref (bag-build-inputs bag) "source")

base-commit: 182be30fb1a8b847c30492462ec22c08ec7a9849
--
2.40.1
J
J
Josselin Poiret wrote on 21 Jul 2023 12:14
[PATCH 2/3] tests: store-roots: Initial gc-roots should be empty.
(name . Ludovic Courtès)(address . ludo@gnu.org)
ad74949be91d909948d5539efad05e01556657b2.1689934453.git.dev@jpoiret.xyz
From: Josselin Poiret <dev@jpoiret.xyz>

* tests/store-roots.scm ("gc-roots, initial"): Set expected result to empty.
Also do not error out if /profiles doesn't exist.
---
tests/store-roots.scm | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

Toggle diff (20 lines)
diff --git a/tests/store-roots.scm b/tests/store-roots.scm
index 9877987a65..d82a29e313 100644
--- a/tests/store-roots.scm
+++ b/tests/store-roots.scm
@@ -31,10 +31,11 @@ (define %store #f)
(test-begin "store-roots")
(test-equal "gc-roots, initial"
- (list (string-append %state-directory "/profiles"))
+ '()
(begin
;; 'gc-roots' should gracefully handle lack of that directory.
- (delete-file-recursively (string-append %state-directory "/profiles"))
+ (false-if-exception
+ (delete-file-recursively (string-append %state-directory "/profiles")))
(gc-roots)))
;; The 'open-connection' call below gets guix-daemon to create
--
2.40.1
J
J
Josselin Poiret wrote on 21 Jul 2023 12:14
[PATCH 3/3] tests: texlive: Remove texlive-texworks from propagated-inputs.
(name . Ludovic Courtès)(address . ludo@gnu.org)
09df89f19b2b360097634520ca4c281aaa4cc852.1689934453.git.dev@jpoiret.xyz
From: Josselin Poiret <dev@jpoiret.xyz>

* tests/texlive.scm ("texlive->guix-package, meta-package"): Remove
texlive-texworks from expected propagated-inputs, as it is now ignored by
texlive->guix-package.
---
tests/texlive.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (15 lines)
diff --git a/tests/texlive.scm b/tests/texlive.scm
index 98461f7e51..b8b1d5c6d6 100644
--- a/tests/texlive.scm
+++ b/tests/texlive.scm
@@ -542,7 +542,7 @@ (define %fake-tlpdb
('arguments
('list '#:builder ('gexp ('mkdir ('ungexp 'output)))))
('propagated-inputs
- ('list 'texlive-collection-basic 'texlive-texworks))
+ ('list 'texlive-collection-basic))
('home-page "https://www.tug.org/texlive/")
('synopsis (? string?))
('description (? string?))
--
2.40.1
J
J
Janneke Nieuwenhuizen wrote on 21 Jul 2023 13:17
Re: bug#64760: make check fails on 182be30fb1a8b847c30492462ec22c08ec7a9849
(name . Josselin Poiret)(address . dev@jpoiret.xyz)(address . 64760@debbugs.gnu.org)
874jlxtsx1.fsf@gnu.org
Josselin Poiret writes:

Hi Josselin,

Toggle quote (10 lines)
>> Make check gives three failures for me on current master
>>
>> FAIL: tests/packages (package->bag)
>> FAIL: tests/store-roots (gc-roots, initial)
>> FAIL: tests/texlive (texlive->guix-package, meta-package)
>>
>> using this snippet.
>
> I have local fixes for all of them

Nice! I can confirm they work for me.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 28 Jul 2023 10:52
Re: [PATCH 2/3] tests: store-roots: Initial gc-roots should be empty.
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
87mszgcta7.fsf@gnu.org
Josselin Poiret writes:

Hi!

Toggle quote (25 lines)
> * tests/store-roots.scm ("gc-roots, initial"): Set expected result to empty.
> Also do not error out if /profiles doesn't exist.
> ---
> tests/store-roots.scm | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tests/store-roots.scm b/tests/store-roots.scm
> index 9877987a65..d82a29e313 100644
> --- a/tests/store-roots.scm
> +++ b/tests/store-roots.scm
> @@ -31,10 +31,11 @@ (define %store #f)
> (test-begin "store-roots")
>
> (test-equal "gc-roots, initial"
> - (list (string-append %state-directory "/profiles"))
> + '()
> (begin
> ;; 'gc-roots' should gracefully handle lack of that directory.
> - (delete-file-recursively (string-append %state-directory "/profiles"))
> + (false-if-exception
> + (delete-file-recursively (string-append %state-directory "/profiles")))
> (gc-roots)))
>
> ;; The 'open-connection' call below gets guix-daemon to create

Just a headsup that this change breaks the store-roots test on the hurd
for me.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Janneke Nieuwenhuizen wrote on 28 Jul 2023 13:58
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
87ila4cknl.fsf@gnu.org
Janneke Nieuwenhuizen writes:

Hello,

Toggle quote (6 lines)
> Josselin Poiret writes:
>
> Hi!
>
>> * tests/store-roots.scm ("gc-roots, initial"): Set expected result to empty.
>> Also do not error out if /profiles doesn't exist.
[..]
Toggle quote (3 lines)
> Just a headsup that this change breaks the store-roots test on the hurd
> for me.

aaand as discussed on IRC, the missing output

Toggle snippet (20 lines)
FAIL: tests/store-roots
=======================

test-name: gc-roots, initial
location: /tmp/guix-build-guix-1.4.0-8.5623ab5.drv-0/source/tests/store-roots.scm:33
source:
+ (test-equal
+ "gc-roots, initial"
+ '()
+ (begin
+ (false-if-exception
+ (delete-file-recursively
+ (string-append %state-directory "/profiles")))
+ (gc-roots)))
expected-value: ()
actual-value: ("/tmp/guix-tests/var/19337/profiles")
result: FAIL


--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
J
J
Josselin Poiret wrote on 28 Jul 2023 16:00
(name . Janneke Nieuwenhuizen)(address . janneke@gnu.org)
873518m8zr.fsf@jpoiret.xyz
Hi everyone,

Janneke Nieuwenhuizen <janneke@gnu.org> writes:

Toggle quote (3 lines)
> Just a headsup that this change breaks the store-roots test on the hurd
> for me.

Thanks for the feedback Janneke. It seems that there is some left-over
state that can mess with this state's result: I was initially surprised
that the /profiles directory could appear in the gc roots, but that's
because it is symlinked under /gcroots, not because it is itself
searched for gc roots.

In any case, the /gcroots directory along with the /gcroots/profiles
symlink is created when a connection is made to the daemon, which is not
the case here yet. However, a connection might have been opened before
for the same state dir (which depends on the PID of
build-aux/test-env.in). It might also depend on whether the clean-up of
the state directory made by `trap` worked and whether PIDs get re-used
quickly on the specific kernel. I think this is all too unreliable
here (I have one such example of a leftover PID state dir in my tree, so
it might happen more often than not).

In any case, if this test is only here to check if gc-roots doesn't
error out, we could return #t at the end to only fish for errors. WDYT?

Best,
--
Josselin Poiret
-----BEGIN PGP SIGNATURE-----

iQHEBAEBCgAuFiEEOSSM2EHGPMM23K8vUF5AuRYXGooFAmTDyfgQHGRldkBqcG9p
cmV0Lnh5egAKCRBQXkC5FhcailXXDACc6+4RVyembAqpezU2h8ndBxCHcNYgMVvn
qz4kgORP1+wxb46b/x71lFwuflh/uHm6535hq2GAHfflU+cAl9QEKtC/6mPxyOUZ
qX9Zvb/4830IXWQ6iAJ3rmGS5oy8K8r2mv1QHMhcu9TpzWG2Cyw/G+3b6bB7RZqM
ab18LGOYT717GOip0F+0YWJFj8ZQr3sc454CYeKrT8oSH0p68co/yENP0PcNIG+0
S+AT/s414mtob90d4NjoA1hA5nKK7GLZadmlnBRziK4kIgKCqYiJEDo8ajtt+sRF
Zx9w2WTP2E3IQ8eE18owJS5g2Wf7uIRwV+X70aZrYrJea5tiPaX0wsQhcSVGsM/Z
bbAzU4w0q/JEunhd53yJ8kL8U8YWp3GtrGgPqrVjI9PTGCC9YWHVu4FRcDjbvSUV
EADNaNsy9LJ+/778HA53xG02SJTu2oOygyroDuM4XwNFBxjgFUUVwb1YU6WGLQ77
xmT5PZNcSvubXf+32SgBBaCkiA69gMA=
=koHk
-----END PGP SIGNATURE-----

J
J
Janneke Nieuwenhuizen wrote on 30 Jul 2023 18:19
Re: bug#64760: make check fails on 182be30fb1a8b847c30492462ec22c08ec7a9849
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
874jllcqxv.fsf_-_@gnu.org
Josselin Poiret writes:

Hey!

Toggle quote (21 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> writes:
>
>> Just a headsup that this change breaks the store-roots test on the hurd
>> for me.
>
> Thanks for the feedback Janneke. It seems that there is some left-over
> state that can mess with this state's result: I was initially surprised
> that the /profiles directory could appear in the gc roots, but that's
> because it is symlinked under /gcroots, not because it is itself
> searched for gc roots.
>
> In any case, the /gcroots directory along with the /gcroots/profiles
> symlink is created when a connection is made to the daemon, which is not
> the case here yet. However, a connection might have been opened before
> for the same state dir (which depends on the PID of
> build-aux/test-env.in). It might also depend on whether the clean-up of
> the state directory made by `trap` worked and whether PIDs get re-used
> quickly on the specific kernel. I think this is all too unreliable
> here (I have one such example of a leftover PID state dir in my tree, so
> it might happen more often than not).

Yes, that could be. I've got another data-point for i686-linux (see
also https://issues.guix.gnu.org/64959);the package and texlive tests
now pass, and store-roots is made to fail like so:

Toggle snippet (16 lines)
test-name: gc-roots, initial
location: /home/janneke/src/guix/wip-i686/tests/store-roots.scm:33
source:
+ (test-equal
+ "gc-roots, initial"
+ '()
+ (begin
+ (false-if-exception
+ (delete-file-recursively
+ (string-append %state-directory "/profiles")))
+ (gc-roots)))
expected-value: ()
actual-value: ("/home/janneke/src/guix/wip-i686/test-tmp/var/30690/profiles")
result: FAIL

Toggle quote (3 lines)
> In any case, if this test is only here to check if gc-roots doesn't
> error out, we could return #t at the end to only fish for errors. WDYT?

(good question.../me passes insights here to "others" ;)

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Ludovic Courtès wrote on 9 Aug 2023 23:41
(address . 64760@debbugs.gnu.org)
874jl7opvj.fsf@gnu.org
Hello!

Janneke Nieuwenhuizen <janneke@gnu.org> skribis:

Toggle quote (21 lines)
> test-name: gc-roots, initial
> location: /home/janneke/src/guix/master/tests/store-roots.scm:33
> source:
> + (test-equal
> + "gc-roots, initial"
> + (list (string-append %state-directory "/profiles"))
> + (begin
> + (delete-file-recursively
> + (string-append %state-directory "/profiles"))
> + (gc-roots)))
> expected-value: ("/home/janneke/src/guix/master/test-tmp/var/9734/profiles")
> actual-value: #f
> actual-error:
> + (system-error
> + "lstat"
> + "~A: ~S"
> + ("No such file or directory"
> + "/home/janneke/src/guix/master/test-tmp/var/9734/profiles")
> + (2))
> result: FAIL

Hmm, this test passes for me.

Could you get a backtrace so we see where the ‘lstat’ exception comes
from? (To get the backtrace, you can raise (begin …) out of
‘test-equal’ and then “make check TESTS=tests/store-root.scm”.)

Thanks,
Ludo’.
J
J
Janneke Nieuwenhuizen wrote on 11 Aug 2023 14:31
(name . Ludovic Courtès)(address . ludo@gnu.org)
871qg9sqtg.fsf@gnu.org
Ludovic Courtès writes:

Hey!

Toggle quote (25 lines)
> Janneke Nieuwenhuizen <janneke@gnu.org> skribis:
>
>> test-name: gc-roots, initial
>> location: /home/janneke/src/guix/master/tests/store-roots.scm:33
>> source:
>> + (test-equal
>> + "gc-roots, initial"
>> + (list (string-append %state-directory "/profiles"))
>> + (begin
>> + (delete-file-recursively
>> + (string-append %state-directory "/profiles"))
>> + (gc-roots)))
>> expected-value: ("/home/janneke/src/guix/master/test-tmp/var/9734/profiles")
>> actual-value: #f
>> actual-error:
>> + (system-error
>> + "lstat"
>> + "~A: ~S"
>> + ("No such file or directory"
>> + "/home/janneke/src/guix/master/test-tmp/var/9734/profiles")
>> + (2))
>> result: FAIL
>
> Hmm, this test passes for me.

Well, what would you know, it passes for me too...

Toggle quote (4 lines)
> Could you get a backtrace so we see where the ‘lstat’ exception comes
> from? (To get the backtrace, you can raise (begin …) out of
> ‘test-equal’ and then “make check TESTS=tests/store-root.scm”.)

...as I found out after trying this. I had my source tree configured
using --disable-daemon --disable-nls (a nifty feature that I encountered
only recently)...and then this (patched) test fails. After
reconfiguring, all is well.

Greetings,
Janneke

--
Janneke Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond https://LilyPond.org
Freelance IT https://www.JoyOfSource.com| Avatar® https://AvatarAcademy.com
L
L
Ludovic Courtès wrote on 18 Aug 2023 16:11
control message for bug #64598
(address . control@debbugs.gnu.org)
87wmxsqw2r.fsf@gnu.org
merge 64598 64760
quit
L
L
Ludovic Courtès wrote on 18 Aug 2023 16:13
Re: bug#64760: make check fails on 182be30fb1a8b847c30492462ec22c08ec7a9849
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
87sf8gqw0e.fsf_-_@gnu.org
Hello!

Pushed as 4b1fdd44ed87dc07d23cc9313a8b6b14d0646923!

Ludo’.
Closed
?