Subject: Indeterministic test failure in qemu-minimal

From: Gábor Boskovits <[email-masked]>
Date: Thu, 25 Oct 2018 17:57:54 +0200

---------- Forwarded message ---------
From: Edouard KLEIN <[email-masked]>
Date: 2018. okt. 25., Cs, 15:34
Subject: Using 'guix system disk-image' on a non-GuixSD OS
To: <[email-masked]>

Hi all,

I do not know whether the "guix system disk-image" command is supposed
to work on a non GuixSD system.

If it is, then I'm running into an error while trying to create a disk
from a system declaration on my Arch Linux OS.

I run:
$ guix system disk-image --fallback config.scm

with config.scm copied at the end of this email.

I get the error message at the end of this emai.

I do not really know where to start looking. It appears that the error
is in the qemu package, which is necessary for grub. I tried removing
the bootloader part of the system declaration, as I can boot from the
ext4 partition directly, but it seems necessary to have one such part
in the OS declaration.

Any help would be appreciated. In the meantime I'm running the command
in a GuixSD VM, but it's taking forever and it's way more cumbersome
than being able to run it on any system.

Thanks in advance,

Edouard.

---------------config.scm

;; This is an operating system configuration template
;; for a "bare bones" setup, with no X11 display server.

(use-modules (gnu))
(use-service-modules networking ssh)
(use-package-modules screen ssh)

(operating-system
  (host-name "GuixSD_Base")
  (timezone "UTC")
  (locale "en_US.utf8")

  ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
  ;; target hard disk, and "my-root" is the label of the target
  ;; root file system.
  (bootloader (bootloader-configuration
                (bootloader grub-bootloader)
                (target "/dev/sda")))
  (file-systems (cons (file-system
                        (device (file-system-label "my-root"))
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))

  ;; This is where user accounts are specified.  The "root"
  ;; account is implicit, and is initially created with the
  ;; empty password.
  (users (cons (user-account
                (name "edouard")
                (comment "boudoir")
                (group "users")

                ;; Adding the account to the "wheel" group
                ;; makes it a sudoer.  Adding it to "audio"
                ;; and "video" allows the user to play sound
                ;; and access the webcam.
                (supplementary-groups '("wheel"
                                        "audio" "video"))
                (home-directory "/home/edouard"))
               %base-user-accounts))

  ;; Globally-installed packages.
  (packages (append (map specification->package
                         '("tmux" "openssh"))
                    %base-packages))

  ;; Add services to the baseline: a DHCP client and
  ;; an SSH server.
  (services (cons* (dhcp-client-service)
                   (service openssh-service-type
                            (openssh-configuration
                             (authorized-keys
                              '(("edouard" ,(local-file "edouard.pub"))
                                ("root" ,(local-file "edouard.pub"))))
                       (permit-root-login 'without-password)
                             (port-number 22)))
                   %base-services)))
------------error message
c++ -I/gnu/store/pslvw8b4r0m5vmbz2ml7whcv2wbdpa57-pixman-0.34.0/include/pixman-1
-I/tmp/guix-build-qemu-minimal-2.10.2.drv-0/qemu-2.10.2/dtc/libfdt
-pthread -I/gnu/s[14/1947]
cagl47zbb6krfpmwm31m70s9pk00-glib-2.56.0/include/glib-2.0
-I/gnu/store/x9lfcagl47zbb6krfpmwm31m70s9pk00-glib-2.56.0/lib/glib-2.0/include
-DNCURSES_WIDECHAR -D_GNU_SOURCE -D_D
EFAULT_SOURCE -fPIE -DPIE -m64 -mcx16 -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes
-Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-p
rototypes -fno-strict-aliasing -fno-common -fwrapv  -Wendif-labels
-Wno-missing-include-dirs -Wempty-body -Wnested-externs
-Wformat-security -Wformat-y2k -Winit-self -Wignore
d-qualifiers -Wold-style-declaration -Wold-style-definition
-Wtype-limits -fstack-protector-strong
-I/gnu/store/8679cp88yg5jrq2q1944xf14ibyp1kp7-libpng-1.6.34/include/libpn
g16 -I/tmp/guix-build-qemu-minimal-2.10.2.drv-0/qemu-2.10.2/tests -O2
-U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2  -Wl,--warn-common -Wl,-z,relro
-Wl,-z,now -pie -m64 -Wl,--warn-co
mmon -Wl,-z,relro -Wl,-z,now -pie -m64 -lrt -o tests/test-replication
tests/test-replication.o block.o blockjob.o qemu-io-cmds.o
replication.o block/raw-format.o block/qcow.o
 block/vdi.o block/vmdk.o block/cloop.o block/bochs.o block/vpc.o
block/vvfat.o block/dmg.o block/qcow2.o block/qcow2-refcount.o
block/qcow2-cluster.o block/qcow2-snapshot.o
block/qcow2-cache.o block/qcow2-bitmap.o block/qed.o
block/qed-l2-cache.o block/qed-table.o block/qed-cluster.o
block/qed-check.o block/vhdx.o block/vhdx-endian.o block/vhdx-
log.o block/quorum.o block/parallels.o block/blkdebug.o
block/blkverify.o block/blkreplay.o block/block-backend.o
block/snapshot.o block/qapi.o block/file-posix.o block/linux
-aio.o block/null.o block/mirror.o block/commit.o block/io.o
block/throttle-groups.o block/nbd.o block/nbd-client.o
block/sheepdog.o block/accounting.o block/dirty-bitmap.o b
lock/write-threshold.o block/backup.o block/replication.o
block/crypto.o nbd/server.o nbd/client.o nbd/common.o block/dmg-bz2.o
io/channel.o io/channel-buffer.o io/channel-co
mmand.o io/channel-file.o io/channel-socket.o io/channel-tls.o
io/channel-watch.o io/channel-websock.o io/channel-util.o
io/dns-resolver.o io/task.o crypto/init.o crypto/hash
.o crypto/hash-glib.o crypto/hmac.o crypto/hmac-glib.o crypto/aes.o
crypto/desrfb.o crypto/cipher.o crypto/tlscreds.o
crypto/tlscredsanon.o crypto/tlscredsx509.o crypto/tlsse
ssion.o crypto/secret.o crypto/random-platform.o crypto/pbkdf.o
crypto/ivgen.o crypto/ivgen-essiv.o crypto/ivgen-plain.o
crypto/ivgen-plain64.o crypto/afsplit.o crypto/xts.o
crypto/block.o crypto/block-qcow.o crypto/block-luks.o qom/object.o
qom/container.o qom/qom-qobject.o qom/object_interfaces.o
tests/iothread.o  libqemuutil.a libqemustub.a  -
lz -laio -lbz2 -lm
-L/gnu/store/x9lfcagl47zbb6krfpmwm31m70s9pk00-glib-2.56.0/lib
-lgthread-2.0 -pthread -lglib-2.0  -lz -lz  -lutil
MALLOC_PERTURB_=${MALLOC_PERTURB_:-$(( ${RANDOM:-0} % 255 + 1))}
gtester -k --verbose -m=quick tests/test-replication
TEST: tests/test-replication... (pid=14861)
  /replication/primary/read:                                           OK
  /replication/primary/write:                                          OK
  /replication/primary/start:                                          OK
  /replication/primary/stop:                                           OK
  /replication/primary/do_checkpoint:                                  OK
  /replication/primary/get_error_all:                                  OK
  /replication/secondary/read:                                         OK
  /replication/secondary/write:                                        OK
  /replication/secondary/start:                                        **
ERROR:tests/test-replication.c:117:test_blk_write: assertion failed:
(async_ret == 0)
FAIL
GTester: last random seed: R02Sb499c9e89b18bb967dd59acad1b2aaa8
(pid=14865)
  /replication/secondary/stop:                                         OK
  /replication/secondary/do_checkpoint:                                OK
  /replication/secondary/get_error_all:                                OK
FAIL: tests/test-replication
make: *** [/tmp/guix-build-qemu-minimal-2.10.2.drv-0/qemu-2.10.2/tests/Makefile.include:849:
check-tests/test-replication] Error 1

Test suite failed, dumping logs.
Backtrace:
           4 (primitive-load "/gnu/store/5v4cdxg9m4x6hax86g1q7jw5bch…")
In ice-9/eval.scm:
   191:35  3 (_ _)
In srfi/srfi-1.scm:
    640:9  2 (for-each #<procedure a06400 at /gnu/store/f95ghy8mx00…> …)
In /gnu/store/f95ghy8mx00fc22nrvswvnpqlfdkf2nk-module-import/guix/build/gnu-build-system.scm:
   799:31  1 (_ _)
    369:6  0 (check #:target _ #:make-flags _ #:tests? _ # _ # _ # _)

/gnu/store/f95ghy8mx00fc22nrvswvnpqlfdkf2nk-module-import/guix/build/gnu-build-system.scm:369:6:
In procedure check:
Throw to key `srfi-34' with args `(#<condition &invoke-error [program:
"make" arguments: ("check") exit-status: 2 term-signal: #f
stop-signal: #f] 986a40>)'.
builder for `/gnu/store/5q7ixx1qjf7msamr052jc5jyfilhpsai-qemu-minimal-2.10.2.drv'
failed with exit code 1
cannot build derivation
`/gnu/store/5i56cl8c6608azkn67qy54nf2kqxfhkl-grub-2.02.drv': 1
dependencies couldn't be built
guix system: error: build failed: build of
`/gnu/store/5i56cl8c6608azkn67qy54nf2kqxfhkl-grub-2.02.drv' failed

It worked without errors the second time.

g_bor