core-updates: make check fails when guix-daemon is running

  • Done
  • quality assurance status badge
Details
3 participants
  • Chris Marusich
  • Lars-Dominik Braun
  • Ludovic Courtès
Owner
unassigned
Submitted by
Chris Marusich
Severity
important
C
C
Chris Marusich wrote on 9 Mar 2021 09:48
(address . bug-guix@gnu.org)
87r1ko4ss1.fsf@gmail.com
Hi,

Lars-Dominik, I'm CCing you on this email because you introduced the
code discussed below, so I'm hoping you might know something about it.
If you could please take a look, I'd really appreciate it!

Starting with commit 09448c0994390697e876db235a3b773311795238, "make
check" fails when a guix-daemon is running. (It doesn't fail when
guix-daemon is not running, since the problematic code below is only
executed when an "external store" is available.) A guix-daemon is
usually running when one manually invokes "make check" on a system where
Guix has already been installed.

One specific test failure is test/guix-package.sh, which fails as
follows:

Toggle snippet (37 lines)
test-name: python-build-system: python-dummy-ok
location: /home/marusich/guix-core-updates/tests/builders.scm:174
source:
+ (test-assert
+ (string-append
+ "python-build-system: "
+ (package-name p))
+ (let* ((drv (package-derivation store p)))
+ (build-derivations store (list drv))))
actual-value: #f
actual-error:
+ (out-of-range
+ #f
+ "Value out of range ~S to ~S: ~S"
+ (0 59 81)
+ (81))
result: FAIL

test-name: python-build-system: python-dummy-no-setuptools
location: /home/marusich/guix-core-updates/tests/builders.scm:174
source:
+ (test-assert
+ (string-append
+ "python-build-system: "
+ (package-name p))
+ (let* ((drv (package-derivation store p)))
+ (build-derivations store (list drv))))
actual-value: #f
actual-error:
+ (out-of-range
+ #f
+ "Value out of range ~S to ~S: ~S"
+ (0 59 81)
+ (81))
result: FAIL

The test succeeds on the previous commit.

Upon closer inspection, it seems the failure occurs when calling
package-derivation. By putting the following code into the
tests/builders.scm file...

Toggle snippet (6 lines)
(pk 'beforerun)
(with-external-store store
(package-derivation store python-dummy-ok))
(pk 'afterrun)

...I was able to get this error message when running "make check
TESTS=tests/builders.scm":

Toggle snippet (39 lines)
;;; (beforerun)
Backtrace:
In guix/packages.scm:
1519:22 19 (thunk)
1448:25 18 (bag->derivation #<store-connection 256.99 7fff865c5190> …)
In srfi/srfi-1.scm:
586:29 17 (map1 (("source" #<origin "https://data.iana.org/t…>) …))
586:29 16 (map1 (("tzcode" #<origin "https://data.iana.org/t…>) …))
586:17 15 (map1 (("tar" #<package tar@1.34 guix/build-system…>) …))
In guix/packages.scm:
1224:16 14 (expand-input #<store-connection 256.99 7fff865c5190> # …)
1181:16 13 (package-derivation _ #<package tar@1.34 guix/build-sy…> …)
1519:22 12 (thunk)
1448:25 11 (bag->derivation #<store-connection 256.99 7fff865c5190> …)
In srfi/srfi-1.scm:
586:17 10 (map1 (("source" #<origin "mirror://gnu/tar/tar-1.…>) …))
In guix/packages.scm:
1243:5 9 (expand-input _ _ _ _ _)
In ice-9/boot-9.scm:
1736:10 8 (with-exception-handler _ _ #:unwind? _ # _)
In guix/packages.scm:
1248:18 7 (_)
In guix/store.scm:
2062:24 6 (run-with-store #<store-connection 256.99 7fff865c5190> …)
1896:8 5 (_ _)
In guix/gexp.scm:
258:18 4 (_ _)
In guix/packages.scm:
1635:7 3 (_ _)
616:2 2 (patch-and-repack #<derivation /gnu/store/z66sd90j5ya4…> …)
In unknown file:
1 (string-drop "/gnu/store/4y8yhyxhvh725bp3bk7wzr3jn8r5h…" …)
In ice-9/boot-9.scm:
1669:16 0 (raise-exception _ #:continuable? _)

ice-9/boot-9.scm:1669:16: In procedure raise-exception:
Value out of range 0 to 59: 74

I'm not sure exactly what the problem is. I'm inclined to believe that
it represents some sort of test logic bug, rather than a real python
packaging bug, I'm not really sure.

I see that the problematic forms are using macros. Specifically, the
tests/builders.scm code is attempting to simultaneously mix invocations
of lambdas, the test-assert syntax (i.e., macro), and the
with-external-store syntax (i.e., macro). I wonder if there's a
macro-related bug lurking here... Any ideas?

For now, the failures can be worked around by stopping guix-daemon when
running "make check." Naturally, this bug isn't a problem when guix
builds guix, since an external store is not available in the build
environment, so the problematic code doesn't get executed there.

--
Chris
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmBHNk4ACgkQ3UCaFdgi
Rp0EzBAAuTD12/e/9kSTOXvU0eatYfk9fL7DT1wEkgoBLU4tZeECdxqbyMXOv+9B
KK1rM6Hr4yYZIXW1+7AMnU4bM+tgJSdkF3k+yHAjeTgOx/r4gSfvliDt5RTPadhW
rjfl1+iIyGrgwcA+b942nLWBirM/v05T0y2Pw/0Xe2rnExQDiIE5lysL5CGnYKgW
AYWYW0Re1TSagIPIZfPyCJwSXLq5GXnehlRxr+6smA/sMqIjs/YN3Yt9ONobCvqF
Tvvk2y5rol7MpBM51inoTdd0MD8AI7/cMQ4nZR/JL/rrZdvij5esi/Nwbsx5bJXZ
3LvFCVHo05mNg+dAQso+V6muJ2rLay/t+rmZsprKsVkmFY4vl+679kKkzS6GUjG3
MbqCMurSUAWg63x8hDsQNtutvNUhOQzFbTvvU/87SbGAYdRaw2OGyXeRk63s3i9B
BrU1mpWML+0ge+j7h38TIUs010yyW/rtCWKCUnwYDfm5SzDuOc/NlN5O99mORTck
jbzttPYY0rfWq4hEU7ZDJ72Em5LJy2WmifJraIL49OPVj8MMLvRdFBw/Gzxn93k6
hMBXFFC7uO1FE1dle19bq8dG1GJzjTn7sRlyotx1gr/SgqikeJQj+BZasV1/xP5U
kyzJ9csWrVs6i664TjrxaY8+Pu7HHmcstmRsAOXV09oGYaAXtBQ=
=CVvc
-----END PGP SIGNATURE-----

C
C
Chris Marusich wrote on 9 Mar 2021 09:51
(address . 47018@debbugs.gnu.org)(name . Lars-Dominik Braun)(address . lars@6xq.net)
87o8fs4slx.fsf@gmail.com
Chris Marusich <cmmarusich@gmail.com> writes:

Toggle quote (3 lines)
> One specific test failure is test/guix-package.sh, which fails as
> follows:

I misspoke. The failing test is tests/builders.scm. The rest of my
message should be correct.

--
Chris
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmBHNyoACgkQ3UCaFdgi
Rp17eg//bZyJCnwyx10EZZNAD8SSxb2cjkbqGgwqzik5bknOekUoQNjx1cDOKkOa
9cSTJegAiU06BBwz3KobyczDKSlokneds6JiRnucMqL5JUyO7iq/5uT8nkBA1eea
kk03jq6lFfVdR0iJ8NfM9Ts+PxZlfRBwKAwQEZJkWQg+MDoHmIifQ5egD/HaALrl
0K+xRt6nhSTH6ABLKbKtln7FbKQNJVpp5F9BG4iKJI/yZQ+ogplc1+FKkEc+whFL
rCiqmmGL1ZWC+HYcCV8J2vErx7RqNtW4jvzLSULVEgIpui+shH6340KZdZQc7AZT
A7ZfrgR339eobSqeZTIOzhE3TtqFCM8F7p17+HC/4QpK27DIXfa/UH/1NlzCvHXL
1DVZSCCQNu74vAnxf1NL4OwBuzdvNm4sefJx50rx7DrO5hdZQGyK5F6igyf0PTug
SNfWsvpDDEgbmF6y5ddrrkijEGpX8acPAgYbGe/bB0920wxguIutpPBjdNi4VxYP
wWSg+gWmLiRN7AqwTqqbprxbZxLxvu2BTxj+zKnMLL4PYgTLbiwCm/cBcW5FMZwR
z/ALvnRE3c1xrK2xueIff61W6mXQr5KYRnpYq/9csiWnVopjMdAyMKEkLPG/Np9q
2Ats0m9UUmUHTX5wpT9Q9G0TRRPoW0YwfwE0+r4A/mhQnu2ZBTE=
=Ej+N
-----END PGP SIGNATURE-----

L
L
Lars-Dominik Braun wrote on 9 Mar 2021 17:45
(name . Chris Marusich)(address . cmmarusich@gmail.com)(address . 47018@debbugs.gnu.org)
YEemPrgvDuMs+1Pa@noor.fritz.box
Attachment: file
C
C
Chris Marusich wrote on 12 Mar 2021 08:45
(address . 47018@debbugs.gnu.org)
87lfaszug4.fsf@gmail.com
Hi Lars-Dominik and Maxim,

Lars-Dominik, thank you for the quick reply! Maxim, do you have time to
take a look at this bug? Lars-Dominik mentioned that it's possible that
your recent changes to patch-and-repack might be related somehow.

Lars-Dominik Braun <lars@6xq.net> writes:

Toggle quote (6 lines)
> I’m pretty sure it worked when I submitted the patch. Looking at the
> untruncated backtrace and `git blame guix/packages.scm` I’d guess that the
> recent changes to patch-and-repack somehow broke this. But that’s really all I
> can say unfortunately. Maybe CC Maxim Cournoyer, who made that change
> (cfcead2e515c0dae02127e5a76496463898be6b6)?

Thank you for the tip. I haven't checked this yet due to lack of time,
but I will eventually.

I am posting mainly to note that this problem also affects
tests/pack.scm, which appears to be the only other test (besides
tests/builders.scm) using the with-external-store form. Both tests fail
when a guix-daemon is running. So, I think something about the
with-external-form is not playing well with the rest of the code, but I
don't fully understand the problem yet.

More investigation is required...

--
Chris
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmBLHBsACgkQ3UCaFdgi
Rp23mg//XwLd8GZ4c6uNlrlTKel0c2kBu70GDSuL/yM1su67CpyHVqLMOzYOg10c
j9NFbKpCkOtVpJjq5yJp7vDbI/tun65lLkHyy+POhCh1nDk6KkFiZSWt3xaOW/Cp
aSDBsBMVRPsX4WQq+7V4/DulWMWTKsdXI1oaj9O3YI2ENFYzm9H5iUj/pu5JaoDI
TuqNluSgZt8Kh+J3uh8S5m7/Phhhbn5S6xE7EL9ayeDWpvlXTX+R5/qkF4yrkIcW
B5dqEX1hhsWUBS2DacHigHF2khWTqwYShAeMj9DpC+8zmLHBZ7qCHebwhAZc2n7C
WEkzB53INUIXAtvQuoQnLX2UbJVJnJ7KgG0h5Th1gepPlznkiN5ElDayL9wRBHpE
dNVkYHKxGJZCbpXPlVh/ekgtuyNdznwSkBSRTVUnOxTVW95psJI1zfKGsoRojk7D
TwZtyQhruwZh6JZrFkCg2JE2zyUgULPUs61Ku2NuRHAOesvnw87C3tWJP+xex051
pGyaq7REqH94qSsDW70QdtAeH6BiHrq7d4UwW5mPvQArVS83bLwIHpTnNej5dLjn
eefPwynEyFfIRDy5UFl1xTzNLwVG4HXtHWjdpDnovCcVKENWoRC/WOQ57bst4vA0
jjpPBe72e0BFyNrWbpC4QPy8q3C34sNHWG7umXBrUd49IwzXpB4=
=cSns
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 20 Jun 2021 23:17
control message for bug #47018
(address . control@debbugs.gnu.org)
87czsg8ccm.fsf@gnu.org
severity 47018 important
quit
L
L
Ludovic Courtès wrote on 20 Jun 2021 23:20
Re: bug#47018: core-updates: make check fails when guix-daemon is running
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)
878s348c7u.fsf@gnu.org
Hi,

(+Cc: Maxim.)

Chris Marusich <cmmarusich@gmail.com> wrote:

Toggle quote (18 lines)
> test-name: python-build-system: python-dummy-ok
> location: /home/marusich/guix-core-updates/tests/builders.scm:174
> source:
> + (test-assert
> + (string-append
> + "python-build-system: "
> + (package-name p))
> + (let* ((drv (package-derivation store p)))
> + (build-derivations store (list drv))))
> actual-value: #f
> actual-error:
> + (out-of-range
> + #f
> + "Value out of range ~S to ~S: ~S"
> + (0 59 81)
> + (81))
> result: FAIL

Lars-Dominik Braun <lars@6xq.net> skribis:

Toggle quote (23 lines)
> 586:17 10 (map1 (("source" #<origin "mirror://gnu/tar/tar-1.34.tar.xz" #<content-hash sha256:0a0x87anh9chbi2cgcyy7pmnm5hzk4yd1w2j8gm1wplwhwkbvgk3> ("…/gnu/packages/patches/tar-skip-unreliable-tests.patch" "…/gnu/packages/patches/tar-remove-wholesparse-check.patch") 7fa2f7b41360>) ("coreutils" #<package coreutils@8.32 guix/build-system/gnu.scm:143 7fa2fee74140>) ("grep" #<package grep@3.6 gnu/packages/commencement.scm:3632 7fa2fee78e60>) ("locales" #<package glibc-utf8-locales@2.32 gnu/packages/commencement.scm:3573 7fa2fee74640>) ("bash" #<package bash-minimal@5.0.16 gnu/packages/commencement.scm:3541 7fa2fee74960>) ("gcc" #<package gcc@7.5.0 gnu/packages/commencement.scm:3453 7fa2fee74aa0>) ("ld-wrapper" #<package ld-wrapper-boot3@0 gnu/packages/base.scm:606 7fa2f68acc80>) ("libc" #<package glibc@2.32 gnu/packages/commencement.scm:3348 7fa2fee74dc0>) ("libc:static" #<package glibc@2.32 gnu/p…> …) …))
> In guix/packages.scm:
> 1246:5 9 (expand-input _ _ _ _ _)
> In ice-9/boot-9.scm:
> 1736:10 8 (with-exception-handler _ _ #:unwind? _ #:unwind-for-type _)
> In guix/packages.scm:
> 1251:18 7 (_)
> In guix/store.scm:
> 2066:24 6 (run-with-store #<store-connection 256.99 7fa2f699daa0> #<procedure 7fa2f69c6540 at guix/gexp.scm:246:2 (state)> #:guile-for-build _ #:system _ #:target _)
> 1900:8 5 (_ _)
> In guix/gexp.scm:
> 256:18 4 (_ _)
> In guix/packages.scm:
> 1638:7 3 (_ _)
> 619:2 2 (patch-and-repack #<derivation /gnu/store/l9nzv7lmznp2y22i2n3j7mccz5jjhlv1-tar-1.34.tar.xz.drv => /gnu/store/4y8yhyxhvh725bp3bk7wzr3jn8r5hjm0-tar-1.34.tar.xz 7fa2f699d280> ("…/gnu/packages/patches/tar-skip-unreliable-tests.patch" "…/gnu/packages/patches/tar-remove-wholesparse-check.patch") #:inputs _ #:snippet _ #:flags _ #:modules _ #:guile-for-build _ #:system _)
> In unknown file:
> 1 (string-drop "/gnu/store/4y8yhyxhvh725bp3bk7wzr3jn8r5hjm0-tar-1.34.tar.xz" 91)
> In ice-9/boot-9.scm:
> 1669:16 0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
> Value out of range 0 to 59: 91

Maxim, does that ring a bell?

I think this has to do with ‘%store-prefix’, ‘%storedir’,
etc. shenanigans and their impact on the python-build-system tests you
added in ‘core-updates’ a while back.

Thanks,
Ludo’.
L
L
Ludovic Courtès wrote on 5 Jul 2021 16:59
(name . Lars-Dominik Braun)(address . lars@6xq.net)
87lf6ku7qe.fsf@gnu.org
Hi,

Lars-Dominik Braun <lars@6xq.net> skribis:

Toggle quote (11 lines)
> In guix/packages.scm:
> 1638:7 3 (_ _)
> 619:2 2 (patch-and-repack #<derivation /gnu/store/l9nzv7lmznp2y22i2n3j7mccz5jjhlv1-tar-1.34.tar.xz.drv => /gnu/store/4y8yhyxhvh725bp3bk7wzr3jn8r5hjm0-tar-1.34.tar.xz 7fa2f699d280> ("…/gnu/packages/patches/tar-skip-unreliable-tests.patch" "…/gnu/packages/patches/tar-remove-wholesparse-check.patch") #:inputs _ #:snippet _ #:flags _ #:modules _ #:guile-for-build _ #:system _)
> In unknown file:
> 1 (string-drop "/gnu/store/4y8yhyxhvh725bp3bk7wzr3jn8r5hjm0-tar-1.34.tar.xz" 91)
> In ice-9/boot-9.scm:
> 1669:16 0 (raise-exception _ #:continuable? _)
>
> ice-9/boot-9.scm:1669:16: In procedure raise-exception:
> Value out of range 0 to 59: 91

Fixed in 99ea6a2996a388134c6ea8fdce34f70d446b1450!

Ludo’.
Closed
?