all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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’.

  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.