From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Problems running 'check-system' Date: Tue, 02 May 2017 15:56:08 +0200 Message-ID: <87k25zfjlz.fsf@gnu.org> References: <8737cn3jmj.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:36877) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d5YHo-0004Av-Ue for guix-devel@gnu.org; Tue, 02 May 2017 09:56:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d5YHl-0003J9-03 for guix-devel@gnu.org; Tue, 02 May 2017 09:56:17 -0400 In-Reply-To: <8737cn3jmj.fsf@gmail.com> (Chris Marusich's message of "Mon, 01 May 2017 22:36:36 -0700") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Chris Marusich Cc: guix-devel@gnu.org Hi Chris, Chris Marusich skribis: > make -j check-system TESTS=3Dinstalled-os [...] > srfi/srfi-1.scm:575:27: Throw to key `srfi-34' with args `(#)'. > make: *** [Makefile:5066: check-system] Error 1 > [2] [env] marusich@garuda:~/guix > $=20 > > > 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=E2=80=99s not surprising: =E2=80=98make=E2=80=99 triggers a download o= f guile-2.0.9.tar.xz in gnu/packages/bootstrap. See Makefile.am. However, =E2=80=98check-system=E2=80=99 should depend on this target. Fixe= d 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 # ...] > In unknown file: > ?: 12 [apply-smob/1 #] > 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 #] > 4089: 8 [#] > 1734: 7 [%start-stack load-stack #] > 1739: 6 [#] > 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 # ...] > In /gnu/store/a42pfdz8w5qxdkp6xz8783ydywmp0p8p-module-import/guix/build/g= nu-build-system.scm: > 653: 2 [# #] > 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 =E2=80=98copy-file=E2=80=99 is read-o= nly. > 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 =E2=80=A6 (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 =E2=80=9Cnormal=E2=80=9D system tests (mcron, dicod, ngi= nx, 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 =E2=80=9Cnormal=E2=80=9D system tests is convenient, but worki= ng with installation tests is more tiresome. I think it=E2=80=99s inherent to the nature of installation tests, though if anyone has ideas on how to make them run faster, that=E2=80=99d be great! Good news: as of v0.12.0-3433-g4aabc8eaa, =E2=80=9Cinstalled-os=E2=80=9D pa= sses for me. :-) HTH! Ludo=E2=80=99.