Build:
  1. 0
2026-09-28 08:24.45: New job: Build using linux-arm64 in
                                [https://github.com/mirage/mirage-skeleton.git#refs/heads/dev (52abe5aedb1f19f6dd3a18dc9ad81c766f813ebc)]

OBuilder spec:

((from ocaml/opam:debian-13-ocaml-4.14@sha256:f8c03c9eb3959339c9720950824bacff40039816b8960b20e3eff39ac9b468f3)
 (user (uid 1000) (gid 1000))
 (workdir /home/opam)
 (run (shell "sudo chown opam:opam /home/opam"))
 (run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam && opam update"))
 (run (network host)
      (shell "opam repo add opam https://github.com/ocaml/opam-repository.git#bbc4314c37cbe5902ab659460c440b099fe729a3"))
 (run (network host)
      (shell "opam repo add mirage-dev https://github.com/mirage/mirage-dev.git#eb114ccf0dd4eeca6b4f06c5c7361c238eeca4fd"))
 (run (cache (download-cache (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "sudo apt-get update && opam install -y \"mirage>=4\""))
 (copy (src .) (dst /src/))
 (env MODE hvt)
 (workdir /src/)
 (run (shell "opam exec -- make configure"))
 (env MIRAGE_EXTRA_REPOS opam-overlays:https://github.com/dune-universe/opam-overlays.git#12d79d1b7c38542a225a56a94ca78279797185f9,mirage-opam-overlays:https://github.com/dune-universe/mirage-opam-overlays.git#eddcd1bc7e035392596b603d23dde67a88e6f6bc)
 (run (network host)
      (shell "opam exec -- make lock"))
 (run (cache (download-cache (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "sudo apt-get update && opam exec -- make depends"))
 (run (shell "opam monorepo list -l mirage.opam.locked"))
 (run (cache (download-cache (target /home/opam/.opam/download-cache)))
      (network host)
      (shell "opam exec -- make pull"))
 (env DUNE_CACHE enabled)
 (env DUNE_CACHE_TRANSPORT direct)
 (run (cache (dune-build-cache (target /home/opam/.cache/dune)))
      (network host)
      (shell "opam exec -- make build"))
)

2026-09-28 08:24.45: Using cache hint "mirage-ci-skeleton-debian-13-ocaml-4.14"
2026-09-28 08:24.45: Waiting for resource in pool OCluster
2026-09-28 08:26.38: Waiting for worker…
2026-09-28 08:29.35: Got resource from pool OCluster
Building on kydoime.caelum.ci.dev
All commits already cached
HEAD is now at 52abe5a Merge pull request #421 from hannesm/mirage-411

(from ocaml/opam:debian-13-ocaml-4.14@sha256:f8c03c9eb3959339c9720950824bacff40039816b8960b20e3eff39ac9b468f3)
Unable to find image 'ocaml/opam:debian-13-ocaml-4.14@sha256:f8c03c9eb3959339c9720950824bacff40039816b8960b20e3eff39ac9b468f3' locally
docker.io/ocaml/opam@sha256:f8c03c9eb3959339c9720950824bacff40039816b8960b20e3eff39ac9b468f3: Pulling from ocaml/opam
ccd9dba13ae3: Already exists
684f629e903e: Already exists
bb24f71783dd: Already exists
253bb6746c13: Already exists
ed68ef06adce: Already exists
b79066115113: Already exists
327ad593836f: Already exists
28d65de608dd: Already exists
ac7780da0dde: Already exists
cfce6721eeba: Already exists
25ee7bd0ae48: Already exists
e2d1acf86f7d: Already exists
f2ba877a1e71: Already exists
8ee74c412ffc: Already exists
6b761d97453a: Already exists
c3b2976a3131: Already exists
48e9a94144cb: Already exists
48e9a94144cb: Already exists
cc6be6959896: Already exists
c345653ad753: Already exists
90c261aeebf1: Already exists
dc1692333b1a: Already exists
4f4fb700ef54: Already exists
8c1e15fd54d1: Already exists
9d2be62e0c3e: Already exists
027aa3a4ce04: Already exists
b6c81f57bfc1: Already exists
4e22bf6f8ce5: Already exists
78ed57575002: Already exists
2fd8c907415e: Already exists
64b2da5b73a3: Already exists
0a6f146db19c: Already exists
9b76c281b35b: Already exists
143876426320: Already exists
af55e85b64ef: Already exists
47a4409a30a5: Already exists
7b512e82825d: Already exists
e4022832a642: Already exists
0c00c87f85ae: Already exists
ba682c08d403: Already exists
fd9f13693b4e: Already exists
542c25657ea5: Already exists
fc63eaa91398: Pulling fs layer
5a9ad15badb9: Pulling fs layer
b9e8eb7a809f: Pulling fs layer
122108f110a2: Pulling fs layer
122108f110a2: Waiting
5a9ad15badb9: Verifying Checksum
5a9ad15badb9: Download complete
b9e8eb7a809f: Verifying Checksum
b9e8eb7a809f: Download complete
122108f110a2: Download complete
fc63eaa91398: Verifying Checksum
fc63eaa91398: Download complete
fc63eaa91398: Pull complete
5a9ad15badb9: Pull complete
b9e8eb7a809f: Pull complete
122108f110a2: Pull complete
Digest: sha256:f8c03c9eb3959339c9720950824bacff40039816b8960b20e3eff39ac9b468f3
Status: Downloaded newer image for ocaml/opam@sha256:f8c03c9eb3959339c9720950824bacff40039816b8960b20e3eff39ac9b468f3
2026-09-28 08:29.35 ---> using "555f4460f608bc902cc6dfad2feab550c12729babf85c9e9c667e1fa14d7da63" from cache

/: (user (uid 1000) (gid 1000))

/: (workdir /home/opam)

/home/opam: (run (shell "sudo chown opam:opam /home/opam"))
2026-09-28 08:29.35 ---> using "622e0f29322ed3f5a2c9a0eb143fc0aa4fd8cf6c0a53fe8bce639dec32c6aaf3" from cache

/home/opam: (run (shell "sudo ln -f /usr/bin/opam-2.4 /usr/bin/opam && opam update"))
Continue? [Y/n] y
This version of opam requires an update to the layout of /home/opam/.opam from version 2.1 to version 2.2, which can't be reverted.
You may want to back it up before going further.

[NOTE] The 'jobs' option was reset, its value was 1 and its new value will vary according to the current number of cores on your machine. You can restore the fixed value using:
           opam option jobs=1 --global
Format upgrade done.

<><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><>
[default] no changes from git+file:///home/opam/opam-repository
2026-09-28 08:29.35 ---> using "063907f62543b898adc57c1a0f7f5b56fd1dd5195ced3a8fd4bb7ff1dcd05a26" from cache

/home/opam: (run (network host)
                 (shell "opam repo add opam https://github.com/ocaml/opam-repository.git#bbc4314c37cbe5902ab659460c440b099fe729a3"))
[opam] Initialised
opam (at git+https://github.com/ocaml/opam-repository.git#bbc4314c37cbe5902ab659460c440b099fe729a3): 
    [WARNING] opam >= 2.5.2 includes important security fixes; please consider upgrading (https://opam.ocaml.org/doc/Install.html)

[NOTE] Repository opam has been added to the selections of switch 4.14 only.
       Run `opam repository add opam --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.

2026-09-28 08:29.35 ---> using "d0a25b9104a49ecf602fa09b647b40f462df11084ef19e1f3a24975d0cdfa404" from cache

/home/opam: (run (network host)
                 (shell "opam repo add mirage-dev https://github.com/mirage/mirage-dev.git#eb114ccf0dd4eeca6b4f06c5c7361c238eeca4fd"))
[mirage-dev] Initialised
[NOTE] Repository mirage-dev has been added to the selections of switch 4.14 only.
       Run `opam repository add mirage-dev --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.

2026-09-28 08:29.35 ---> using "2d6199a2a4ea8694219f0b28fb8b3b955ebf09f26e3d5c9bb90581b8f6df2bce" from cache

/home/opam: (run (cache (download-cache (target /home/opam/.opam/download-cache)))
                 (network host)
                 (shell "sudo apt-get update && opam install -y \"mirage>=4\""))
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
Get:4 http://deb.debian.org/debian-security trixie-security/main arm64 Packages [264 kB]
Fetched 355 kB in 0s (1749 kB/s)
Reading package lists...
The following actions will be performed:
=== install 27 packages
  - install angstrom           0.16.1 [required by emile, uri]
  - install astring            0.8.5  [required by mirage]
  - install base64             3.5.2  [required by emile]
  - install bigstringaf        0.10.0 [required by emile]
  - install bos                0.3.0  [required by mirage]
  - install cmdliner           2.1.1  [required by mirage]
  - install csexp              1.5.2  [required by dune-configurator]
  - install domain-name        0.5.0  [required by ipaddr]
  - install dune               3.24.2 [required by mirage]
  - install dune-configurator  3.24.2 [required by bigstringaf]
  - install emile              1.1    [required by mirage]
  - install fmt                0.11.0 [required by mirage]
  - install fpath              0.7.3  [required by mirage]
  - install ipaddr             5.6.2  [required by mirage]
  - install logs               0.10.0 [required by mirage]
  - install macaddr            5.6.2  [required by ipaddr]
  - install mirage             4.11.2
  - install ocaml-syntax-shims 1.0.0  [required by angstrom]
  - install ocamlbuild         0.16.1 [required by astring, bos]
  - install ocamlfind          1.9.8  [required by astring, bos]
  - install opam-monorepo      0.5.0  [required by mirage]
  - install pecu               0.7    [required by emile]
  - install rresult            0.7.0  [required by mirage]
  - install stringext          1.6.0  [required by uri]
  - install topkg              1.1.1  [required by astring, bos]
  - install uri                4.4.0  [required by mirage]
  - install uutf               1.0.4  [required by emile]

<><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
-> retrieved angstrom.0.16.1  (cached)
-> retrieved astring.0.8.5  (cached)
-> retrieved base64.3.5.2  (cached)
-> retrieved bigstringaf.0.10.0  (cached)
-> retrieved bos.0.3.0  (cached)
-> retrieved csexp.1.5.2  (cached)
-> retrieved cmdliner.2.1.1  (cached)
-> retrieved domain-name.0.5.0  (cached)
-> retrieved emile.1.1  (cached)
-> retrieved fmt.0.11.0  (cached)
-> retrieved fpath.0.7.3  (cached)
-> retrieved ipaddr.5.6.2, macaddr.5.6.2  (cached)
-> retrieved logs.0.10.0  (cached)
-> retrieved ocaml-syntax-shims.1.0.0  (cached)
-> retrieved ocamlbuild.0.16.1  (cached)
-> retrieved mirage.4.11.2  (cached)
-> retrieved ocamlfind.1.9.8  (cached)
-> retrieved pecu.0.7  (cached)
-> retrieved rresult.0.7.0  (cached)
-> retrieved stringext.1.6.0  (cached)
-> retrieved topkg.1.1.1  (cached)
-> retrieved dune.3.24.2, dune-configurator.3.24.2  (cached)
-> retrieved opam-monorepo.0.5.0  (cached)
-> retrieved uri.4.4.0  (cached)
-> retrieved uutf.1.0.4  (cached)
-> installed cmdliner.2.1.1
-> installed ocamlbuild.0.16.1
-> installed ocamlfind.1.9.8
-> installed topkg.1.1.1
-> installed rresult.0.7.0
-> installed uutf.1.0.4
-> installed fmt.0.11.0
-> installed astring.0.8.5
-> installed logs.0.10.0
-> installed fpath.0.7.3
-> installed bos.0.3.0
-> installed dune.3.24.2
-> installed base64.3.5.2
-> installed csexp.1.5.2
-> installed domain-name.0.5.0
-> installed macaddr.5.6.2
-> installed ocaml-syntax-shims.1.0.0
-> installed pecu.0.7
-> installed stringext.1.6.0
-> installed ipaddr.5.6.2
-> installed dune-configurator.3.24.2
-> installed bigstringaf.0.10.0
-> installed angstrom.0.16.1
-> installed emile.1.1
-> installed uri.4.4.0
-> installed opam-monorepo.0.5.0
-> installed mirage.4.11.2
Done.
# To update the current shell environment, run: eval $(opam env)
2026-09-28 08:30.40 ---> saved as "90c0949975f1dd7e6033a89e6e94c41d7423015abd7503d04666008d0f601aa1"

/home/opam: (copy (src .) (dst /src/))
2026-09-28 08:30.40 ---> saved as "ce1559d6e3a6f7eac24d67bf89b8f8a184827c4be16e7095d41ea99d8aef0bbc"

/home/opam: (env MODE hvt)

/home/opam: (workdir /src/)

/src/: (run (shell "opam exec -- make configure"))
mirage configure -f tutorial/noop/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/hello/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/hello-key/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/local-library/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/echo_server/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/heads1/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/heads2/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/timeout1/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/lwt/timeout2/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f tutorial/app_info/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/clock/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/conduit_server/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/http-fetch/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/kv_ro/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/littlefs/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/network/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/ping6/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f device-usage/disk-lottery/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/dhcp/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/http/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/dns/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/crypto/config.ml -t hvt 
adding unit argument to 'start ()' (to delay execution)
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
mirage configure -f applications/static_website_tls/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
dd if=/dev/zero of=disk.img count=100000
100000+0 records in
100000+0 records out
51200000 bytes (51 MB, 49 MiB) copied, 0.125888 s, 407 MB/s
mirage configure -f device-usage/block/config.ml -t hvt 
Successfully configured the unikernel. Now run 'make' (or more fine-grained steps: 'make all', 'make depends', or 'make lock').
2026-09-28 08:30.53 ---> saved as "23bea71dc1a5da80e384e7d26cc7afce0109e89374539da6f8fd8366788d0972"

/src/: (env MIRAGE_EXTRA_REPOS opam-overlays:https://github.com/dune-universe/opam-overlays.git#12d79d1b7c38542a225a56a94ca78279797185f9,mirage-opam-overlays:https://github.com/dune-universe/mirage-opam-overlays.git#eddcd1bc7e035392596b603d23dde67a88e6f6bc)

/src/: (run (network host)
            (shell "opam exec -- make lock"))
[opam-overlays] Initialised
[WARNING] Errors in /home/opam/.opam/repo/opam-overlays/repo, some fields have been ignored:
            - At /home/opam/.opam/repo/opam-overlays/repo:3:197-3:203::
              expected string

[NOTE] Repository opam-overlays has been added to the selections of switch 4.14 only.
       Run `opam repository add opam-overlays --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.

[mirage-opam-overlays] Initialised
[NOTE] Repository mirage-opam-overlays has been added to the selections of switch 4.14 only.
       Run `opam repository add mirage-opam-overlays --all-switches|--set-default' to use it in all existing switches, or in newly created switches, respectively.

env OPAMVAR_monorepo="opam-monorepo" opam monorepo lock --recurse-opam noop-hvt hello-hvt hello-key-hvt local-library-hvt echo_server-hvt heads1-hvt heads2-hvt timeout1-hvt timeout2-hvt echo_server-hvt app-info-hvt speaking_clock-hvt conduit_server-hvt http-fetch-hvt kv_ro-hvt elittlefs-hvt network-hvt ping-hvt lottery-hvt dhcp-hvt minipaf-hvt resolve-hvt crypto-test-hvt https-hvt block_test-hvt --build-only --ocaml-version 4.14.4 -l ./mirage.opam.locked
==> Using 24 locally scanned packages as the targets.
This version of opam requires an update to the layout of /home/opam/.opam from version 2.2 to version 2.6, which can't be reverted.
You may want to back it up before going further.

[ERROR] Write lock attempt in safe mode
opam-monorepo: internal error, uncaught exception:
               OpamStd.OpamSys.Exit(15)
               Raised at OpamStd.OpamSys.exit in file "duniverse/opam/src/core/opamStd.ml", line 1316, characters 15-29
               Called from OpamSystem.flock_update in file "duniverse/opam/src/core/opamSystem.ml", line 1142, characters 19-45
               Called from OpamFilename.with_flock_upgrade in file "duniverse/opam/src/core/opamFilename.ml", line 549, characters 4-48
               Called from OpamGlobalState.load_config in file "duniverse/opam/src/state/opamGlobalState.ml", line 38, characters 4-68
               Called from OpamGlobalState.load in file "duniverse/opam/src/state/opamGlobalState.ml", line 80, characters 8-46
               Called from OpamGlobalState.with_ in file "duniverse/opam/src/state/opamGlobalState.ml", line 214, characters 11-20
               Called from Duniverse_cli__Lock.run in file "cli/lock.ml", line 592, characters 4-177
               Called from Cmdliner_term.app.(fun) in file "duniverse/cmdliner/src/cmdliner_term.ml", line 24, characters 19-24
               Called from Cmdliner_term.app.(fun) in file "duniverse/cmdliner/src/cmdliner_term.ml", line 22, characters 12-19
               Called from Cmdliner_eval.run_parser in file "duniverse/cmdliner/src/cmdliner_eval.ml", line 35, characters 37-44
make: *** [Makefile:68: lock] Error 125
"/usr/bin/env" "bash" "-c" "opam exec -- make lock" failed with exit status 2
2026-09-28 08:30.59: Job failed: Failed: Build failed