* bug#61853: ‘guix pack’ shell tests fail @ 2023-02-27 21:46 Ludovic Courtès 2023-02-27 23:07 ` Ludovic Courtès 0 siblings, 1 reply; 5+ messages in thread From: Ludovic Courtès @ 2023-02-27 21:46 UTC (permalink / raw) To: 61853 The two tests/guix-pack*.sh tests fail: --8<---------------cut here---------------start------------->8--- $ make check TESTS="tests/guix-pack.sh tests/guix-pack-relocatable.sh" -j5 make check-recursive make[1]: Entering directory '/home/ludo/src/guix' Making check in po/guix make[2]: Entering directory '/home/ludo/src/guix/po/guix' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/ludo/src/guix/po/guix' Making check in po/packages make[2]: Entering directory '/home/ludo/src/guix/po/packages' make[2]: Nothing to be done for 'check'. make[2]: Leaving directory '/home/ludo/src/guix/po/packages' make[2]: Entering directory '/home/ludo/src/guix' Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... Compiling Scheme modules... make check-TESTS check-local make[3]: Entering directory '/home/ludo/src/guix' make[3]: Nothing to be done for 'check-local'. make[4]: Entering directory '/home/ludo/src/guix' FAIL: tests/guix-pack-relocatable.sh FAIL: tests/guix-pack.sh ============================================================================ Testsuite summary for GNU Guix 1.3.0.28826-3cff7-dirty ============================================================================ # TOTAL: 2 # PASS: 0 # SKIP: 0 # XFAIL: 0 # FAIL: 2 # XPASS: 0 # ERROR: 0 ============================================================================ See ./test-suite.log Please report to bug-guix@gnu.org ============================================================================ make[4]: *** [Makefile:6051: test-suite.log] Error 1 make[4]: Leaving directory '/home/ludo/src/guix' make[3]: *** [Makefile:6159: check-TESTS] Error 2 make[3]: Leaving directory '/home/ludo/src/guix' make[2]: *** [Makefile:6408: check-am] Error 2 make[2]: Leaving directory '/home/ludo/src/guix' make[1]: *** [Makefile:5936: check-recursive] Error 1 make[1]: Leaving directory '/home/ludo/src/guix' make: *** [Makefile:6410: check] Error 2 $ git log |head -1 commit cf9e0508b26196dc985302776d860a0359652c59 --8<---------------cut here---------------end--------------->8--- In both cases this is because $test_directory is read-only: --8<---------------cut here---------------start------------->8--- + drv1=' /home/ludo/src/guix/test-tmp/store/6wrnnnab33wv950cflswi8ffncwr99b0-guile-tarball-pack.tar.gz.drv' ++ guix pack --no-grafts -n --with-source=guile=/tmp/tmp.olhfx3CkHh guile ++ grep 'pack.*.drv' accepted connection from pid 30805, user ludo + drv2=' /home/ludo/src/guix/test-tmp/store/f909hi2ywyyvy7l5p4ibmy26alr7d18d-guile-tarball-pack.tar.gz.drv' + test -n ' /home/ludo/src/guix/test-tmp/store/6wrnnnab33wv950cflswi8ffncwr99b0-guile-tarball-pack.tar.gz.drv' + test ' /home/ludo/src/guix/test-tmp/store/6wrnnnab33wv950cflswi8ffncwr99b0-guile-tarball-pack.tar.gz.drv' '!=' ' /home/ludo/src/guix/test-tmp/store/f909hi2ywyyvy7l5p4ibmy26alr7d18d-guile-tarball-pack.tar.gz.drv' + cat ./tests/guix-pack.sh: line 124: /tmp/tmp.olhfx3CkHh/manifest1.scm: Permission denied + chmod -Rf +w /tmp/tmp.olhfx3CkHh + rm -rf /tmp/tmp.olhfx3CkHh FAIL tests/guix-pack.sh (exit status: 1) --8<---------------cut here---------------end--------------->8--- … and: --8<---------------cut here---------------start------------->8--- + run_without_store /tmp/tmp.c5oSwOgOOD/Bin/sed --version ./tests/guix-pack-relocatable.sh: line 85: /tmp/tmp.c5oSwOgOOD/output: Permission denied + chmod -Rf +w /tmp/tmp.c5oSwOgOOD + rm -rf /tmp/tmp.c5oSwOgOOD FAIL tests/guix-pack-relocatable.sh (exit status: 1) --8<---------------cut here---------------end--------------->8--- Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#61853: ‘guix pack’ shell tests fail 2023-02-27 21:46 bug#61853: ‘guix pack’ shell tests fail Ludovic Courtès @ 2023-02-27 23:07 ` Ludovic Courtès 2023-02-28 2:15 ` Maxim Cournoyer 0 siblings, 1 reply; 5+ messages in thread From: Ludovic Courtès @ 2023-02-27 23:07 UTC (permalink / raw) To: 61853, Maxim Cournoyer Ludovic Courtès <ludovic.courtes@inria.fr> skribis: > In both cases this is because $test_directory is read-only: This in turn is due to a permission change in generated tarballs: --8<---------------cut here---------------start------------->8--- $ guix describe Generation 248 Feb 27 2023 16:36:12 (current) guix cf9e050 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: cf9e0508b26196dc985302776d860a0359652c59 $ guix pack hello /gnu/store/k0mjzvv76s0yn4r4mwzy6mvf71wxpbg2-hello-tarball-pack.tar.gz ludo@ribbon ~/src/guix$ tar tzvf /gnu/store/k0mjzvv76s0yn4r4mwzy6mvf71wxpbg2-hello-tarball-pack.tar.gz |head dr-xr-xr-x root/root 0 1970-01-01 01:00 ./ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/include/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/ -r--r--r-- root/root 2056 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/crtbegin.o --8<---------------cut here---------------end--------------->8--- Compared to: --8<---------------cut here---------------start------------->8--- $ guix time-machine --commit=v1.4.0 -- pack hello /gnu/store/vjjavmn16mxzgrlfawjcgq5j4iqm7609-hello-tarball-pack.tar.gz $ tar tzvf /gnu/store/vjjavmn16mxzgrlfawjcgq5j4iqm7609-hello-tarball-pack.tar.gz | head drwxr-xr-x root/root 0 1970-01-01 01:00 ./ drwxr-xr-x root/root 0 1970-01-01 01:00 ./gnu/ drwxrwxr-t root/root 0 1970-01-01 01:00 ./gnu/store/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/include/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/ dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/ -r--r--r-- root/root 2056 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/crtbegin.o tar: stdout: write error --8<---------------cut here---------------end--------------->8--- That’s an acceptable change IMO, introduced in 68380db4c40a2ee1156349a87254fd7b1f1a52d5. However, the tests were evidently not run after that change, which is problematic. Anyway, fixed in 92a0e60a963a54230e400c5c2ae585205489bf35. Both tests now pass for me. One issue with 68380db4c40a2ee1156349a87254fd7b1f1a52d5, though, is that it introduces a copy of the profile being built to the store (“profile-directory”). This was purposefully avoided before because it’s very I/O-intensive, space-consuming, and puts more pressure on the store. It’s a pattern we avoided for system images too, having noticed its cost (commit 7f75a7ec08975eb6d6e01db61bd6b91f447f655e for instance.) We may need to come back to a single derivation well or creating packs for big profiles will be too costly. Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#61853: ‘guix pack’ shell tests fail 2023-02-27 23:07 ` Ludovic Courtès @ 2023-02-28 2:15 ` Maxim Cournoyer 2023-03-03 10:43 ` Ludovic Courtès 0 siblings, 1 reply; 5+ messages in thread From: Maxim Cournoyer @ 2023-02-28 2:15 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 61853 Hi Ludovic, Ludovic Courtès <ludo@gnu.org> writes: > Ludovic Courtès <ludovic.courtes@inria.fr> skribis: > >> In both cases this is because $test_directory is read-only: > > This in turn is due to a permission change in generated tarballs: > > $ guix describe > Generation 248 Feb 27 2023 16:36:12 (current) > guix cf9e050 > repository URL: https://git.savannah.gnu.org/git/guix.git > branch: master > commit: cf9e0508b26196dc985302776d860a0359652c59 > $ guix pack hello > /gnu/store/k0mjzvv76s0yn4r4mwzy6mvf71wxpbg2-hello-tarball-pack.tar.gz > ludo@ribbon ~/src/guix$ tar tzvf /gnu/store/k0mjzvv76s0yn4r4mwzy6mvf71wxpbg2-hello-tarball-pack.tar.gz |head > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/include/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/ > -r--r--r-- root/root 2056 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/crtbegin.o > > > Compared to: > > $ guix time-machine --commit=v1.4.0 -- pack hello > /gnu/store/vjjavmn16mxzgrlfawjcgq5j4iqm7609-hello-tarball-pack.tar.gz > $ tar tzvf /gnu/store/vjjavmn16mxzgrlfawjcgq5j4iqm7609-hello-tarball-pack.tar.gz | head > drwxr-xr-x root/root 0 1970-01-01 01:00 ./ > drwxr-xr-x root/root 0 1970-01-01 01:00 ./gnu/ > drwxrwxr-t root/root 0 1970-01-01 01:00 ./gnu/store/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/include/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/ > dr-xr-xr-x root/root 0 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/ > -r--r--r-- root/root 2056 1970-01-01 01:00 ./gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib/lib/gcc/x86_64-unknown-linux-gnu/10.3.0/crtbegin.o > tar: stdout: write error > > That’s an acceptable change IMO, introduced in > 68380db4c40a2ee1156349a87254fd7b1f1a52d5. However, the tests were > evidently not run after that change, which is problematic. Interesting. I had done all my testing using tests/pack.scm (and the new tests/rpm.scm), and overlooked tests/pack.sh. > Anyway, fixed in 92a0e60a963a54230e400c5c2ae585205489bf35. Both tests > now pass for me. Thanks (again)! > One issue with 68380db4c40a2ee1156349a87254fd7b1f1a52d5, though, is that > it introduces a copy of the profile being built to the store > (“profile-directory”). This was purposefully avoided before because > it’s very I/O-intensive, space-consuming, and puts more pressure on the > store. It’s a pattern we avoided for system images too, having noticed > its cost (commit 7f75a7ec08975eb6d6e01db61bd6b91f447f655e for instance.) > > We may need to come back to a single derivation well or creating packs > for big profiles will be too costly. I agree it's expensive; we're trading IO for storage though, so the case of generating the same pack in multiple format, it could be beneficial by only computing the union directory once. The real motivation was avoiding code duplication though; perhaps this could be accomplished by moving the common logic to (guix build pack-utils)? -- Thanks, Maxim ^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#61853: ‘guix pack’ shell tests fail 2023-02-28 2:15 ` Maxim Cournoyer @ 2023-03-03 10:43 ` Ludovic Courtès 2023-03-04 3:22 ` Maxim Cournoyer 0 siblings, 1 reply; 5+ messages in thread From: Ludovic Courtès @ 2023-03-03 10:43 UTC (permalink / raw) To: Maxim Cournoyer; +Cc: 61853 Hi Maxim, Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > Ludovic Courtès <ludo@gnu.org> writes: [...] >> That’s an acceptable change IMO, introduced in >> 68380db4c40a2ee1156349a87254fd7b1f1a52d5. However, the tests were >> evidently not run after that change, which is problematic. > > Interesting. I had done all my testing using tests/pack.scm (and the > new tests/rpm.scm), and overlooked tests/pack.sh. … >> Anyway, fixed in 92a0e60a963a54230e400c5c2ae585205489bf35. Both tests >> now pass for me. > > Thanks (again)! To be clear, it’s time-consuming and stressful. That’s not sane and I’d rather not work that way. >> One issue with 68380db4c40a2ee1156349a87254fd7b1f1a52d5, though, is that >> it introduces a copy of the profile being built to the store >> (“profile-directory”). This was purposefully avoided before because >> it’s very I/O-intensive, space-consuming, and puts more pressure on the >> store. It’s a pattern we avoided for system images too, having noticed >> its cost (commit 7f75a7ec08975eb6d6e01db61bd6b91f447f655e for instance.) >> >> We may need to come back to a single derivation well or creating packs >> for big profiles will be too costly. > > I agree it's expensive; we're trading IO for storage though, so the case > of generating the same pack in multiple format, it could be beneficial > by only computing the union directory once. The real motivation was > avoiding code duplication though; perhaps this could be accomplished by > moving the common logic to (guix build pack-utils)? Yes, that’s a good idea. There’s already (guix build pack) and I guess we could move roughly the contents of ‘self-contained-tarball/builder’ and ‘populate-profile-root’ there. How does that sound? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 5+ messages in thread
* bug#61853: ‘guix pack’ shell tests fail 2023-03-03 10:43 ` Ludovic Courtès @ 2023-03-04 3:22 ` Maxim Cournoyer 0 siblings, 0 replies; 5+ messages in thread From: Maxim Cournoyer @ 2023-03-04 3:22 UTC (permalink / raw) To: Ludovic Courtès; +Cc: 61853 Hi, Ludovic Courtès <ludo@gnu.org> writes: > Hi Maxim, > > Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > >> Ludovic Courtès <ludo@gnu.org> writes: > > [...] > >>> That’s an acceptable change IMO, introduced in >>> 68380db4c40a2ee1156349a87254fd7b1f1a52d5. However, the tests were >>> evidently not run after that change, which is problematic. >> >> Interesting. I had done all my testing using tests/pack.scm (and the >> new tests/rpm.scm), and overlooked tests/pack.sh. > > … > >>> Anyway, fixed in 92a0e60a963a54230e400c5c2ae585205489bf35. Both tests >>> now pass for me. >> >> Thanks (again)! > > To be clear, it’s time-consuming and stressful. That’s not sane and I’d > rather not work that way. Again, thanks for fixing up after me, but you didn't need to put yourself under such pressure. As the author of the problematic change, the responsibility of fixing it was on me; I understand this well. >>> One issue with 68380db4c40a2ee1156349a87254fd7b1f1a52d5, though, is that >>> it introduces a copy of the profile being built to the store >>> (“profile-directory”). This was purposefully avoided before because >>> it’s very I/O-intensive, space-consuming, and puts more pressure on the >>> store. It’s a pattern we avoided for system images too, having noticed >>> its cost (commit 7f75a7ec08975eb6d6e01db61bd6b91f447f655e for instance.) >>> >>> We may need to come back to a single derivation well or creating packs >>> for big profiles will be too costly. >> >> I agree it's expensive; we're trading IO for storage though, so the case >> of generating the same pack in multiple format, it could be beneficial >> by only computing the union directory once. The real motivation was >> avoiding code duplication though; perhaps this could be accomplished by >> moving the common logic to (guix build pack-utils)? > > Yes, that’s a good idea. There’s already (guix build pack) and I guess > we could move roughly the contents of ‘self-contained-tarball/builder’ > and ‘populate-profile-root’ there. > > How does that sound? Sounds good. See an implementation in #61949, to which you should be CC'd already (per 'etc/teams.scm cc-members HEAD^ HEAD'). -- Thanks, Maxim ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-03-04 3:23 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-02-27 21:46 bug#61853: ‘guix pack’ shell tests fail Ludovic Courtès 2023-02-27 23:07 ` Ludovic Courtès 2023-02-28 2:15 ` Maxim Cournoyer 2023-03-03 10:43 ` Ludovic Courtès 2023-03-04 3:22 ` Maxim Cournoyer
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/guix.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).