Subject: bug#43163: [Cuirass] /specifications fails

From: Ludovic Courtès <[email-masked]>
Date: Tue, 01 Sep 2020 23:26:41 +0200

Hello,

Accessing <https://ci.guix.gnu.org/specifications> fails with:

--8<---------------cut here---------------start------------->8---
2020-09-01T23:20:48 GET /specifications
In cuirass/http.scm:
   354:19 10 (url-handler _ _)
In ice-9/ports.scm:
    550:4  9 (call-with-output-string _)
In json/builder.scm:
    161:4  8 (json-build-array #((("name" . "core-updates-co?") ?) ?) ?)
In srfi/srfi-43.scm:
   530:11  7 (vector-for-each #<procedure 7f29817b8a40 at json/buil?> ?)
In json/builder.scm:
    146:6  6 (json-build-object (("name" . "core-updates-core-u?") ?) ?)
In srfi/srfi-1.scm:
    634:9  5 (for-each #<procedure 7f29817b8a00 at json/builder.scm?> ?)
In json/builder.scm:
    146:6  4 (json-build-object (("subset" . "core") ("systems" ?)) # ?)
In srfi/srfi-1.scm:
    634:9  3 (for-each #<procedure 7f29817b89c0 at json/builder.scm?> ?)
In json/builder.scm:
    145:6  2 (json-build-object ("x86_64-linux" "i686-linux" "aar?") ?)
   126:21  1 (build-object-pair _ #<output: string 7f29809c2c40> #f # ?)
In ice-9/boot-9.scm:
  1669:16  0 (raise-exception _ #:continuable? _)
In procedure car: Wrong type argument in position 1 (expecting pair): "x86_64-linux"
--8<---------------cut here---------------end--------------->8---

Where the specs are:

--8<---------------cut here---------------start------------->8---
$ sudo sqlite3 /var/lib/cuirass/cuirass.db
SQLite version 3.28.0 2019-04-16 19:49:53
Enter ".help" for usage hints.
sqlite> select * from specifications;                                                                                  guix-master|()|()|guix|build-aux/cuirass/gnu-system.scm|cuirass-jobs|((systems "x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux"))|(((#:job . "iso9660-image*") (#:type . "ISO-9660") (#:output . "out") (#:path . "")) ((#:job . "hurd-barebones-disk-image*") (#:type . "image") (#:output . "out") (#:path . "")))
guix-modular-master|()|()|guix-modular|build-aux/cuirass/guix-modular.scm|cuirass-jobs|((systems "x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux"))|()
staging-staging|()|()|staging|build-aux/cuirass/gnu-system.scm|cuirass-jobs|((systems "x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux"))|()
version-1.0.1|()|()|version-1.0.1|build-aux/cuirass/gnu-system.scm|cuirass-jobs|((systems  "x86_64-linux" "i686-linux" "armhf-linux" "aarch64-linux"))|()
version-1.1.0|()|()|version-1.1.0|build-aux/cuirass/gnu-system.scm|cuirass-jobs|((systems "x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux"))|()
core-updates-core-updates|()|()|core-updates|build-aux/cuirass/gnu-system.scm|cuirass-jobs|((subset . core) (systems "x86_64-linux" "i686-linux" "aarch64-linux"))|()
wip-desktop|()|()|wip-desktop|build-aux/cuirass/gnu-system.scm|cuirass-jobs|((systems "x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux"))|()
kernel-updates|()|()|kernel-updates|build-aux/cuirass/gnu-system.scm|cuirass-jobs|((systems "x86_64-linux" "i686-linux" "aarch64-linux" "armhf-linux"))|()
--8<---------------cut here---------------end--------------->8---

This might be related to recent Guile-JSON API changes, as the
‘proc_args’ value for core-updates-core-updates above LGTM.

This is with cuirass-0.0.1-42.d332955.

Ludo’.