From: ludo@gnu.org (Ludovic Courtès)
To: Chris Marusich <cmmarusich@gmail.com>
Cc: guix-devel@gnu.org
Subject: Re: Problems running 'check-system'
Date: Tue, 02 May 2017 15:56:08 +0200 [thread overview]
Message-ID: <87k25zfjlz.fsf@gnu.org> (raw)
In-Reply-To: <8737cn3jmj.fsf@gmail.com> (Chris Marusich's message of "Mon, 01 May 2017 22:36:36 -0700")
Hi Chris,
Chris Marusich <cmmarusich@gmail.com> skribis:
> make -j check-system TESTS=installed-os
[...]
> srfi/srfi-1.scm:575:27: Throw to key `srfi-34' with args `(#<condition &message [message: "could not find bootstrap binary 'guile-2.0.9.tar.xz' for system 'x86_64-linux'"] 4b62d80>)'.
> make: *** [Makefile:5066: check-system] Error 1
> [2] [env] marusich@garuda:~/guix
> $
>
>
> However, if I invoke 'make' first, then the "could not find bootstrap
> binary" message does not show up, and the test proceeds to be run:
That’s not surprising: ‘make’ triggers a download of guile-2.0.9.tar.xz
in gnu/packages/bootstrap. See Makefile.am.
However, ‘check-system’ should depend on this target. Fixed in
693f12ce2326f82020e90e58e69cf2b54808c19b.
> Issue #2: even when I run 'make' first, the test fails. It fails with
> this message:
>
> [... some output omitted for brevity ...]
>
> starting phase `copy-bootstrap-guile'
> Backtrace:
> In ice-9/boot-9.scm:
> 160: 13 [catch #t #<catch-closure 8c5dc0> ...]
> In unknown file:
> ?: 12 [apply-smob/1 #<catch-closure 8c5dc0>]
> In ice-9/boot-9.scm:
> 66: 11 [call-with-prompt prompt0 ...]
> In ice-9/eval.scm:
> 432: 10 [eval # #]
> In ice-9/boot-9.scm:
> 2412: 9 [save-module-excursion #<procedure 8e6840 at ice-9/boot-9.scm:4084:3 ()>]
> 4089: 8 [#<procedure 8e6840 at ice-9/boot-9.scm:4084:3 ()>]
> 1734: 7 [%start-stack load-stack #<procedure 8f6e20 at ice-9/boot-9.scm:4080:10 ()>]
> 1739: 6 [#<procedure 8f8960 ()>]
> In unknown file:
> ?: 5 [primitive-load "/gnu/store/wgh83kqjif20wfdg56iz7bxk9d4xmlk0-guix-0.12.0-9.25a4+-guile-builder"]
> In ice-9/eval.scm:
> 387: 4 [eval # ()]
> In srfi/srfi-1.scm:
> 827: 3 [every1 #<procedure f9fa40 at /gnu/store/a42pfdz8w5qxdkp6xz8783ydywmp0p8p-module-import/guix/build/gnu-build-system.scm:649:9 (expr)> ...]
> In /gnu/store/a42pfdz8w5qxdkp6xz8783ydywmp0p8p-module-import/guix/build/gnu-build-system.scm:
> 653: 2 [#<procedure f9fa40 at /gnu/store/a42pfdz8w5qxdkp6xz8783ydywmp0p8p-module-import/guix/build/gnu-build-system.scm:649:9 (expr)> #]
> In ice-9/eval.scm:
> 432: 1 [eval # #]
> In unknown file:
> ?: 0 [copy-file "/gnu/store/dgncc5wmw8prxq09y71hqjc6g7rxqvvb-guile-2.0.9.tar.xz" ...]
>
> ERROR: In procedure copy-file:
> ERROR: In procedure copy-file: Permission denied
What this means is that the target of ‘copy-file’ is read-only.
> Any idea why that's failing? The file
> /gnu/store/dgncc5wmw8prxq09y71hqjc6g7rxqvvb-guile-2.0.9.tar.xz is
> readable by all users. I tried to insert a "pk" in the file
> guix/build/gnu-build-system.scm to see what the target of the copy
> command was, but after about 24 hours (!!) of waiting for the subsequent
> build to finish (for some reason this single-line change caused many
> things to be rebuilt), I found that the build failed for a different,
> apparently unrelated reason. Quite unfortunate.
(guix build gnu-build-system) is used by everything, which is why
modifying it triggers a rebuild of everything.
> This brings me to Issue #3: the system tests appear to be unreliable and
> impractical for day-to-day development. Let me be clear: I really,
> really want to like these system tests. It's fantastic that the entire
> system, its installation process, and other features can be tested
> automatically. I was hoping to hack around with them and eventually add
> a system test for booting and installing from an ISO-9669 image. But
> with an iteration time of over 24 hours (like above) for a single-line
> change, I don't know how helpful these tests really are for day-to-day
> development. I feel like I must be missing some kind of trick here to
> speed up the iteration time. Does anyone have any tips on how to speed
> it up? Maybe I'm missing something that's obvious to everyone else.
No, I think you stumbled upon a bunch of rough edges, and I can
understand your frustration.
> Finally, it seems like the system tests are not being run automatically
> during the build of the Guix package, so I wonder if they're ever being
> run by anyone at all. Every time I've tried to run them recently,
> they've failed, and my attempts to troubleshoot are frustrated by the
> incredibly slow iteration time. I have yet to find a commit on which
> the system tests succeed, including the commit tagged for the v0.12.0
> release. I was hoping to find one so I could automatically bisect to
> find out which commit introduced the I saw above, but at this rate I
> doubt I'll be able to find one soon.
The system tests are being run on Hydra at each commit:
https://hydra.gnu.org/job/gnu/master/test.installed-os.x86_64-linux
https://hydra.gnu.org/job/gnu/master/test.encrypted-root-os.i686-linux
https://hydra.gnu.org/job/gnu/master/test.dicod.x86_64-linux
…
(See build-aux/hydra/gnu-system.scm for details.)
I run some of the tests locally or check the results online from
time-to-time, but I admit that checking all of them is still mostly
manual.
However, while the “normal” system tests (mcron, dicod, nginx, openssh,
etc.) run quickly, the installation tests are expensive: they always
start by rebuilding Guix from the current source, proceed with
installation in a VM, and finally boot the resulting system. Thus,
working with “normal” system tests is convenient, but working with
installation tests is more tiresome.
I think it’s inherent to the nature of installation tests, though if
anyone has ideas on how to make them run faster, that’d be great!
Good news: as of v0.12.0-3433-g4aabc8eaa, “installed-os” passes for me.
:-)
HTH!
Ludo’.
next prev parent reply other threads:[~2017-05-02 13:56 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-05-02 5:36 Problems running 'check-system' Chris Marusich
2017-05-02 13:56 ` Ludovic Courtès [this message]
2017-05-04 8:27 ` Chris Marusich
2017-05-05 16:07 ` Ludovic Courtès
2017-05-08 6:20 ` Chris Marusich
2017-05-08 14:20 ` Ludovic Courtès
2017-05-10 7:26 ` Chris Marusich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k25zfjlz.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=cmmarusich@gmail.com \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.