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
?
Your comment

This issue is archived.

To comment on this conversation send an email to 64760@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 64760
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch