2026-06-09 10:09.17: New job: test ocaml-multicore/eio https://github.com/ocaml-multicore/eio.git#refs/pull/851/head (a1f7b6848795abf641d8b1843bb7a1e56f869a03) (linux-ppc64:debian-13-5.4_ppc64_opam-2.5) Base: ocaml/opam:debian-13-ocaml-5.4@sha256:e72a31a6247b03c00cdaffe88301eab53afb80cfe9d5b842204827887236bd61 Opam project build To reproduce locally: git clone --recursive "https://github.com/ocaml-multicore/eio.git" && cd "eio" && git fetch origin "refs/pull/851/head" && git reset --hard a1f7b684 cat > Dockerfile <<'END-OF-DOCKERFILE' FROM ocaml/opam:debian-13-ocaml-5.4@sha256:e72a31a6247b03c00cdaffe88301eab53afb80cfe9d5b842204827887236bd61 # debian-13-5.4_ppc64_opam-2.5 USER 1000:1000 ENV CLICOLOR_FORCE="1" ENV OPAMCOLOR="always" WORKDIR /src RUN sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam RUN cd ~/opam-repository && (git cat-file -e c98b21e24c088665ccae4c3b53eadadd3b755b15 || git fetch origin master) && git reset -q --hard c98b21e24c088665ccae4c3b53eadadd3b755b15 && git log --no-decorate -n1 --oneline RUN opam init --reinit -ni RUN uname -rs && opam exec -- ocaml -version && opam --version WORKDIR /src RUN sudo chown opam /src RUN opam update -u COPY --chown=1000:1000 eio_windows.opam eio_posix.opam eio_main.opam eio_linux.opam eio.opam ./ RUN opam pin add -yn eio_windows.dev './' && \ opam pin add -yn eio_posix.dev './' && \ opam pin add -yn eio_main.dev './' && \ opam pin add -yn eio_linux.dev './' && \ opam pin add -yn eio.dev './' RUN echo '(lang dune 3.0)' > './dune-project' ENV DEPS="afl-persistent.1.4 alcotest.1.9.1 astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.2.1.1 conf-bash.1 containers.3.18 cppo.1.8.0 crowbar.0.2.2 csexp.1.5.2 cstruct.6.2.0 domain-local-await.1.0.1 domain-local-timeout.1.0.1 dscheck.0.5.0 dune.3.23.1 dune-configurator.3.23.1 either.1.0.0 fmt.0.11.0 hmap.0.8.1 iomux.0.4 kcas.0.7.0 lintcstubs-arity.0.5.2 logs.0.10.0 lwt-dllist.1.1.0 mdx.2.5.2 mtime.2.1.0 multicore-magic.2.3.2 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.1.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 optint.0.3.0 oseq.0.5.1 psq.0.2.1 re.1.14.0 result.1.5 seq.base stdlib-shims.0.3.0 thread-table.1.0.0 topkg.1.1.1 tsort.2.2.0 uring.2.14.0 uutf.1.0.4 yojson.3.0.0" ENV CI="true" ENV OCAMLCI="true" RUN opam update --depexts && opam install --cli=2.5 --depext-only -y eio_windows.dev eio_posix.dev eio_main.dev eio_linux.dev eio.dev $DEPS RUN opam install $DEPS COPY --chown=1000:1000 . /src RUN opam exec -- dune build @install @check @runtest && rm -rf _build END-OF-DOCKERFILE docker build . END-REPRO-BLOCK 2026-06-09 10:09.17: Using cache hint "ocaml-multicore/eio-ocaml/opam:debian-13-ocaml-5.4@sha256:e72a31a6247b03c00cdaffe88301eab53afb80cfe9d5b842204827887236bd61-debian-13-5.4_ppc64_opam-2.5-12c456a1f67161cdda644e9d789b7618" 2026-06-09 10:09.17: Using OBuilder spec: ((from ocaml/opam:debian-13-ocaml-5.4@sha256:e72a31a6247b03c00cdaffe88301eab53afb80cfe9d5b842204827887236bd61) (comment debian-13-5.4_ppc64_opam-2.5) (user (uid 1000) (gid 1000)) (env CLICOLOR_FORCE 1) (env OPAMCOLOR always) (workdir /src) (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e c98b21e24c088665ccae4c3b53eadadd3b755b15 || git fetch origin master) && git reset -q --hard c98b21e24c088665ccae4c3b53eadadd3b755b15 && git log --no-decorate -n1 --oneline")) (run (shell "opam init --reinit -ni")) (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) (workdir /src) (run (shell "sudo chown opam /src")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update -u")) (copy (src eio_windows.opam eio_posix.opam eio_main.opam eio_linux.opam eio.opam) (dst ./)) (run (network host) (shell "opam pin add -yn eio_windows.dev './' && \ \nopam pin add -yn eio_posix.dev './' && \ \nopam pin add -yn eio_main.dev './' && \ \nopam pin add -yn eio_linux.dev './' && \ \nopam pin add -yn eio.dev './'")) (run (shell "echo '(lang dune 3.0)' > './dune-project'")) (env DEPS "afl-persistent.1.4 alcotest.1.9.1 astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.2.1.1 conf-bash.1 containers.3.18 cppo.1.8.0 crowbar.0.2.2 csexp.1.5.2 cstruct.6.2.0 domain-local-await.1.0.1 domain-local-timeout.1.0.1 dscheck.0.5.0 dune.3.23.1 dune-configurator.3.23.1 either.1.0.0 fmt.0.11.0 hmap.0.8.1 iomux.0.4 kcas.0.7.0 lintcstubs-arity.0.5.2 logs.0.10.0 lwt-dllist.1.1.0 mdx.2.5.2 mtime.2.1.0 multicore-magic.2.3.2 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.1.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 optint.0.3.0 oseq.0.5.1 psq.0.2.1 re.1.14.0 result.1.5 seq.base stdlib-shims.0.3.0 thread-table.1.0.0 topkg.1.1.1 tsort.2.2.0 uring.2.14.0 uutf.1.0.4 yojson.3.0.0") (env CI true) (env OCAMLCI true) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y eio_windows.dev eio_posix.dev eio_main.dev eio_linux.dev eio.dev $DEPS")) (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) (copy (src .) (dst /src)) (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) ) 2026-06-09 10:09.17: Waiting for resource in pool OCluster 2026-06-09 10:09.17: Waiting for worker… 2026-06-09 10:09.17: Got resource from pool OCluster Building on scyleia.caelum.ci.dev HEAD is now at bd0ad09 Merge pull request #849 from talex5/simplify-rw HEAD is now at a1f7b68 eio_linux: remove unused code (from ocaml/opam:debian-13-ocaml-5.4@sha256:e72a31a6247b03c00cdaffe88301eab53afb80cfe9d5b842204827887236bd61) 2026-06-09 10:09.18 ---> using "091802f641e43489888e795f557a1cae54c49b7ec9e137997252e3e6eba01965" from cache /: (comment debian-13-5.4_ppc64_opam-2.5) /: (user (uid 1000) (gid 1000)) /: (env CLICOLOR_FORCE 1) /: (env OPAMCOLOR always) /: (workdir /src) /src: (run (shell "sudo ln -f /usr/bin/opam-2.5 /usr/bin/opam")) 2026-06-09 10:09.18 ---> using "0ee279940b26dd10f348f43f792f93feb82f2fb33f7e66c55bc5a62156e66b97" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "cd ~/opam-repository && (git cat-file -e c98b21e24c088665ccae4c3b53eadadd3b755b15 || git fetch origin master) && git reset -q --hard c98b21e24c088665ccae4c3b53eadadd3b755b15 && git log --no-decorate -n1 --oneline")) From https://github.com/ocaml/opam-repository * branch master -> FETCH_HEAD fc08333d1b..8e7cc3fd7b master -> origin/master c98b21e24c Merge pull request #29993 from shonfeder/conditional-mdx-tests 2026-06-09 10:09.18 ---> using "13a9d443c32297c749086da3f5672da2fe59f209abff55655ff6d218f85deead" from cache /src: (run (shell "opam init --reinit -ni")) Configuring from /home/opam/.opamrc and then from built-in defaults. Checking for available remotes: rsync and local, git. - you won't be able to use mercurial repositories unless you install the hg command on your system. - you won't be able to use darcs repositories unless you install the darcs command on your system. 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. Continue? [Y/n] y [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 repositories ><><><><><><><><><><><><><><><><><><><><><><><><><><> [default] synchronised from git+file:///home/opam/opam-repository 2026-06-09 10:09.18 ---> using "6e0535fbec659006f6fde21902fd310b45455212e94648c7bbba909542b284b4" from cache /src: (run (shell "uname -rs && opam exec -- ocaml -version && opam --version")) Linux 7.0.0-22-generic The OCaml toplevel, version 5.4.1 2.5.1 2026-06-09 10:09.18 ---> using "0c437a3e83fce9fac8d4ba7cd6f3282ad65071c083f20212e634cab81edfcf47" from cache /src: (workdir /src) /src: (run (shell "sudo chown opam /src")) 2026-06-09 10:09.18 ---> using "23e278cdaa115f8e5a4757ff18b9c97db8e73dcd74c0cf6c5823342b289c674f" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update -u")) <><> Updating package repositories ><><><><><><><><><><><><><><><><><><><><><><> [default] no changes from git+file:///home/opam/opam-repository Everything as up-to-date as possible The following packages are not being upgraded because the new versions conflict with other installed packages: - ocaml.5.5.0 - ocaml-compiler.5.4.1+lrgrep -- ocaml-base-compiler.5.4.1 is installed and requires ocaml-compiler = 5.4.1 However, you may "opam upgrade" these packages explicitly at these versions (e.g. "opam upgrade ocaml.5.5.0"), which will ask permission to downgrade or uninstall the conflicting packages. Nothing to do. # To update the current shell environment, run: eval $(opam env) 2026-06-09 10:09.18 ---> using "d3212f1f1390faeb8423e07420ce14fa95036affcb6f6616cdcc8a1c311b1744" from cache /src: (copy (src eio_windows.opam eio_posix.opam eio_main.opam eio_linux.opam eio.opam) (dst ./)) 2026-06-09 10:09.18 ---> using "4f4088437ed469921da7644c5ef4964d3147a87a96968ba06e20fcdd235ecdbf" from cache /src: (run (network host) (shell "opam pin add -yn eio_windows.dev './' && \ \nopam pin add -yn eio_posix.dev './' && \ \nopam pin add -yn eio_main.dev './' && \ \nopam pin add -yn eio_linux.dev './' && \ \nopam pin add -yn eio.dev './'")) [eio_windows.dev] synchronised (file:///src) eio_windows is now pinned to file:///src (version dev) [eio_posix.dev] synchronised (file:///src) eio_posix is now pinned to file:///src (version dev) [eio_main.dev] synchronised (file:///src) eio_main is now pinned to file:///src (version dev) [eio_linux.dev] synchronised (file:///src) eio_linux is now pinned to file:///src (version dev) [eio.dev] synchronised (file:///src) eio is now pinned to file:///src (version dev) 2026-06-09 10:09.18 ---> using "e23a53fd2bcb4df693cd5ba939cb522738f381bf7d428d57cdb481c80e3a9dee" from cache /src: (run (shell "echo '(lang dune 3.0)' > './dune-project'")) 2026-06-09 10:09.18 ---> using "582a85af4d586a2649441ee0ca6186c7891d048916c7f05bf7133f6efe472081" from cache /src: (env DEPS "afl-persistent.1.4 alcotest.1.9.1 astring.0.8.5 backoff.0.1.1 base-bigarray.base base-domains.base base-effects.base base-nnp.base base-threads.base base-unix.base bigstringaf.0.10.0 camlp-streams.5.0.1 cmdliner.2.1.1 conf-bash.1 containers.3.18 cppo.1.8.0 crowbar.0.2.2 csexp.1.5.2 cstruct.6.2.0 domain-local-await.1.0.1 domain-local-timeout.1.0.1 dscheck.0.5.0 dune.3.23.1 dune-configurator.3.23.1 either.1.0.0 fmt.0.11.0 hmap.0.8.1 iomux.0.4 kcas.0.7.0 lintcstubs-arity.0.5.2 logs.0.10.0 lwt-dllist.1.1.0 mdx.2.5.2 mtime.2.1.0 multicore-magic.2.3.2 ocaml.5.4.1 ocaml-base-compiler.5.4.1 ocaml-compiler.5.4.1 ocaml-config.3 ocaml-options-vanilla.1 ocaml-syntax-shims.1.0.0 ocaml-version.4.1.1 ocamlbuild.0.16.1 ocamlfind.1.9.8 optint.0.3.0 oseq.0.5.1 psq.0.2.1 re.1.14.0 result.1.5 seq.base stdlib-shims.0.3.0 thread-table.1.0.0 topkg.1.1.1 tsort.2.2.0 uring.2.14.0 uutf.1.0.4 yojson.3.0.0") /src: (env CI true) /src: (env OCAMLCI true) /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam update --depexts && opam install --cli=2.5 --depext-only -y eio_windows.dev eio_posix.dev eio_main.dev eio_linux.dev eio.dev $DEPS")) + /usr/bin/sudo "apt-get" "update" - Get:1 http://deb.debian.org/debian trixie InRelease [140 kB] - 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 trixie/main ppc64el Packages [9509 kB] - Get:5 http://deb.debian.org/debian-security trixie-security/main ppc64el Packages [201 kB] - Fetched 9940 kB in 2s (4916 kB/s) - Reading package lists... - <><> Synchronising pinned packages ><><><><><><><><><><><><><><><><><><><><><><> [eio.dev] synchronised (file:///src) [eio_linux.dev] synchronised (file:///src) [eio_main.dev] synchronised (file:///src) [eio_posix.dev] synchronised (file:///src) [eio_windows.dev] synchronised (file:///src) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 3). [NOTE] Package ocaml-compiler is already installed (current version is 5.4.1). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.1). [NOTE] Package ocaml is already installed (current version is 5.4.1). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-nnp is already installed (current version is base). [NOTE] Package base-effects is already installed (current version is base). [NOTE] Package base-domains is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). # To update the current shell environment, run: eval $(opam env) 2026-06-09 10:09.18 ---> using "85592b35fca7b01b1fb93e43763b26997e4cfa4db33f519dbd0d8551500e128f" from cache /src: (run (cache (opam-archives (target /home/opam/.opam/download-cache))) (network host) (shell "opam install $DEPS")) [NOTE] Package ocaml-options-vanilla is already installed (current version is 1). [NOTE] Package ocaml-config is already installed (current version is 3). [NOTE] Package ocaml-compiler is already installed (current version is 5.4.1). [NOTE] Package ocaml-base-compiler is already installed (current version is 5.4.1). [NOTE] Package ocaml is already installed (current version is 5.4.1). [NOTE] Package base-unix is already installed (current version is base). [NOTE] Package base-threads is already installed (current version is base). [NOTE] Package base-nnp is already installed (current version is base). [NOTE] Package base-effects is already installed (current version is base). [NOTE] Package base-domains is already installed (current version is base). [NOTE] Package base-bigarray is already installed (current version is base). The following actions will be performed: === install 46 packages - install afl-persistent 1.4 - install alcotest 1.9.1 - install astring 0.8.5 - install backoff 0.1.1 - install bigstringaf 0.10.0 - install camlp-streams 5.0.1 - install cmdliner 2.1.1 - install conf-bash 1 - install containers 3.18 - install cppo 1.8.0 - install crowbar 0.2.2 - install csexp 1.5.2 - install cstruct 6.2.0 - install domain-local-await 1.0.1 - install domain-local-timeout 1.0.1 - install dscheck 0.5.0 - install dune 3.23.1 - install dune-configurator 3.23.1 - install either 1.0.0 - install fmt 0.11.0 - install hmap 0.8.1 - install iomux 0.4 - install kcas 0.7.0 - install lintcstubs-arity 0.5.2 - install logs 0.10.0 - install lwt-dllist 1.1.0 - install mdx 2.5.2 - install mtime 2.1.0 - install multicore-magic 2.3.2 - install ocaml-syntax-shims 1.0.0 - install ocaml-version 4.1.1 - install ocamlbuild 0.16.1 - install ocamlfind 1.9.8 - install optint 0.3.0 - install oseq 0.5.1 - install psq 0.2.1 - install re 1.14.0 - install result 1.5 - install seq base - install stdlib-shims 0.3.0 - install thread-table 1.0.0 - install topkg 1.1.1 - install tsort 2.2.0 - install uring 2.14.0 - install uutf 1.0.4 - install yojson 3.0.0 <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><> -> retrieved alcotest.1.9.1 (cached) -> retrieved astring.0.8.5 (cached) -> retrieved bigstringaf.0.10.0 (cached) -> retrieved camlp-streams.5.0.1 (cached) -> retrieved backoff.0.1.1 (https://opam.ocaml.org/cache) -> installed conf-bash.1 -> retrieved cmdliner.2.1.1 (cached) -> retrieved afl-persistent.1.4 (https://opam.ocaml.org/cache) -> retrieved cppo.1.8.0 (cached) -> retrieved csexp.1.5.2 (cached) -> retrieved cstruct.6.2.0 (cached) -> retrieved domain-local-await.1.0.1 (cached) -> retrieved crowbar.0.2.2 (https://opam.ocaml.org/cache) -> retrieved domain-local-timeout.1.0.1 (https://opam.ocaml.org/cache) -> retrieved containers.3.18 (https://opam.ocaml.org/cache) -> retrieved dscheck.0.5.0 (https://opam.ocaml.org/cache) -> retrieved fmt.0.11.0 (cached) -> retrieved hmap.0.8.1 (cached) -> retrieved either.1.0.0 (https://opam.ocaml.org/cache) -> retrieved iomux.0.4 (cached) -> retrieved lintcstubs-arity.0.5.2 (https://opam.ocaml.org/cache) -> retrieved kcas.0.7.0 (https://opam.ocaml.org/cache) -> retrieved logs.0.10.0 (cached) -> retrieved lwt-dllist.1.1.0 (cached) -> retrieved mtime.2.1.0 (cached) -> retrieved mdx.2.5.2 (cached) -> retrieved ocaml-syntax-shims.1.0.0 (cached) -> retrieved ocaml-version.4.1.1 (cached) -> retrieved multicore-magic.2.3.2 (https://opam.ocaml.org/cache) -> retrieved ocamlbuild.0.16.1 (cached) -> retrieved ocamlfind.1.9.8 (cached) -> retrieved optint.0.3.0 (cached) -> retrieved psq.0.2.1 (cached) -> retrieved re.1.14.0 (cached) -> retrieved result.1.5 (cached) -> retrieved seq.base (cached) -> installed seq.base -> retrieved stdlib-shims.0.3.0 (cached) -> retrieved oseq.0.5.1 (https://opam.ocaml.org/cache) -> retrieved thread-table.1.0.0 (cached) -> retrieved topkg.1.1.1 (cached) -> retrieved dune.3.23.1, dune-configurator.3.23.1 (cached) -> retrieved uring.2.14.0 (cached) -> retrieved uutf.1.0.4 (cached) -> retrieved tsort.2.2.0 (https://opam.ocaml.org/cache) -> retrieved yojson.3.0.0 (cached) -> installed cmdliner.2.1.1 -> installed ocamlbuild.0.16.1 -> installed ocamlfind.1.9.8 -> installed topkg.1.1.1 -> installed hmap.0.8.1 -> installed mtime.2.1.0 -> installed fmt.0.11.0 -> installed uutf.1.0.4 -> installed astring.0.8.5 -> installed logs.0.10.0 -> installed dune.3.23.1 -> installed afl-persistent.1.4 -> installed lwt-dllist.1.1.0 -> installed csexp.1.5.2 -> installed backoff.0.1.1 -> installed camlp-streams.5.0.1 -> installed cppo.1.8.0 -> installed cstruct.6.2.0 -> installed either.1.0.0 -> installed lintcstubs-arity.0.5.2 -> installed multicore-magic.2.3.2 -> installed ocaml-syntax-shims.1.0.0 -> installed ocaml-version.4.1.1 -> installed optint.0.3.0 -> installed oseq.0.5.1 -> installed psq.0.2.1 -> installed re.1.14.0 -> installed result.1.5 -> installed stdlib-shims.0.3.0 -> installed thread-table.1.0.0 -> installed tsort.2.2.0 -> installed yojson.3.0.0 -> installed crowbar.0.2.2 -> installed domain-local-timeout.1.0.1 -> installed domain-local-await.1.0.1 -> installed dune-configurator.3.23.1 -> installed alcotest.1.9.1 -> installed kcas.0.7.0 -> installed bigstringaf.0.10.0 -> installed iomux.0.4 -> installed mdx.2.5.2 -> installed containers.3.18 -> installed uring.2.14.0 -> installed dscheck.0.5.0 Done. <><> afl-persistent.1.4 installed successfully ><><><><><><><><><><><><><><><><> => afl-persistent is installed, but since the current OCaml compiler does not enable AFL instrumentation by default, most packages will not be instrumented and fuzzing with afl-fuzz may not be effective. To globally enable AFL instrumentation, create an OCaml switch like: opam switch create 5.4.1+afl ocaml-variants.5.4.1+options ocaml-option-afl # To update the current shell environment, run: eval $(opam env) 2026-06-09 10:09.18 ---> using "04513e0d533a5f7672112273cb826872a6693a26ecc8f0ff9ac86287661fd983" from cache /src: (copy (src .) (dst /src)) 2026-06-09 10:09.20 ---> saved as "d11a3e430c8a40bb4ebb8cd35bb31077257cf549a6e024c19b8011ed18b4c4b5" /src: (run (shell "opam exec -- dune build @install @check @runtest && rm -rf _build")) (cd _build/default/fuzz && ./fuzz_inherit_fds.exe) inherit_fds: PASS (cd _build/default/fuzz && ./fuzz_buf_write.exe) random ops: PASS (cd _build/default/fuzz && ./fuzz_buf_read.exe) random ops: PASS (cd _build/default/lib_eio_linux/tests && ./test.exe) Testing `eio_linux'. This run has ID `0JK3EK8K'. [OK] io 0 copy. [OK] io 1 direct_copy. [OK] io 2 poll_add. [OK] io 3 poll_add_busy. [OK] io 4 iovec. [OK] io 5 no_sqe. [OK] io 6 read_exact. [OK] io 7 expose_backend. [OK] io 8 statx. [OK] io 9 signal_race. [OK] io 10 alloc-fixed-or-wait. Full test results in `/src/_build/default/lib_eio_linux/tests/_build/_tests/eio_linux'. Test Successful in 0.006s. 11 tests run. File "lib_eio_linux/tests/fd_sharing.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/lib_eio_linux/tests/fd_sharing.md _build/default/lib_eio_linux/tests/.mdx/fd_sharing.md.corrected diff --git a/_build/default/lib_eio_linux/tests/fd_sharing.md b/_build/default/lib_eio_linux/tests/.mdx/fd_sharing.md.corrected index bf8230b..2c12233 100644 --- a/_build/default/lib_eio_linux/tests/fd_sharing.md +++ b/_build/default/lib_eio_linux/tests/.mdx/fd_sharing.md.corrected @@ -51,11 +51,5 @@ One domain closes an FD after another domain has enqueued a uring operation ment (* Allow the read to complete. *) Eio.Flow.close w );; -+Domain 1 enqueuing read on FD -+Waiting for domain 0... -+Domain 0 closing FD -+Domain 0 closed FD; waking domain 1 -+Domain 1 flushing queue -+Read EOF -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` File "tests/mutex.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/mutex.md _build/default/tests/.mdx/mutex.md.corrected diff --git a/_build/default/tests/mutex.md b/_build/default/tests/.mdx/mutex.md.corrected index 47021db..1c81691 100644 --- a/_build/default/tests/mutex.md +++ b/_build/default/tests/.mdx/mutex.md.corrected @@ -166,11 +166,7 @@ Or allow interruption and disable the mutex: with ex -> traceln "Trying to reuse the failed mutex..."; M.use_ro t (fun () -> assert false);; -+Cancelling... -+Trying to reuse the failed mutex... -Exception: -Eio__Eio_mutex.Poisoned - (Eio__core__Exn.Cancelled (Failure "Simulated error")). +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Protection doesn't prevent cancellation while we're still waiting for the lock, though: File "tests/fd_passing.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/fd_passing.md _build/default/tests/.mdx/fd_passing.md.corrected diff --git a/_build/default/tests/fd_passing.md b/_build/default/tests/.mdx/fd_passing.md.corrected index 6d6c86b..b2c91dd 100644 --- a/_build/default/tests/fd_passing.md +++ b/_build/default/tests/.mdx/fd_passing.md.corrected @@ -77,7 +77,5 @@ Using named sockets: (fun () -> fst (Eio.Net.accept ~sw server)) in test ~to_send:[fd] r w;; -+Got: "x" plus 1 FDs -+Read: "foo" -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` File "lib_eio_linux/tests/spawn.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/lib_eio_linux/tests/spawn.md _build/default/lib_eio_linux/tests/.mdx/spawn.md.corrected diff --git a/_build/default/lib_eio_linux/tests/spawn.md b/_build/default/lib_eio_linux/tests/.mdx/spawn.md.corrected index 8d45211..915cb9e 100644 --- a/_build/default/lib_eio_linux/tests/spawn.md +++ b/_build/default/lib_eio_linux/tests/.mdx/spawn.md.corrected @@ -21,8 +21,7 @@ Setting environment variables: ~env:[| "FOO=bar" |]; ] in Promise.await (Process.exit_status child);; -FOO=bar -- : Unix.process_status = Unix.WEXITED 0 +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Changing directory: @@ -37,8 +36,7 @@ Changing directory: ~env:(Unix.environment ()) ] in Promise.await (Process.exit_status child);; -/ -- : Unix.process_status = Unix.WEXITED 0 +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Changing directory using a file descriptor: File "tests/sync.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/sync.md _build/default/tests/.mdx/sync.md.corrected diff --git a/_build/default/tests/sync.md b/_build/default/tests/.mdx/sync.md.corrected index d37b90f..6c1e47c 100644 --- a/_build/default/tests/sync.md +++ b/_build/default/tests/.mdx/sync.md.corrected @@ -33,11 +33,7 @@ Create a promise, fork a thread waiting for it, then fulfull it: Fiber.yield (); traceln "Thread after yield: %a" (pp_promise Fmt.string) thread; traceln "Final result: %s" (Promise.await_exn thread);; -+Initial state: unresolved -+After being fulfilled: fulfilled:ok -+Thread before yield: unresolved -+Thread after yield: fulfilled:ok -+Final result: ok +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Create a promise, fork a thread waiting for it, then break it: File "tests/flow.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/flow.md _build/default/tests/.mdx/flow.md.corrected diff --git a/_build/default/tests/flow.md b/_build/default/tests/.mdx/flow.md.corrected index 02b4061..742e1b9 100644 --- a/_build/default/tests/flow.md +++ b/_build/default/tests/.mdx/flow.md.corrected @@ -46,11 +46,7 @@ let mock_source = test 5; test 6; test 7;; -+Got "" -+Got "foo" -+Got "fooba" -+Got "foobar" -Exception: End_of_file. +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` ## copy @@ -103,9 +99,7 @@ Copying from src using `Read_source_buffer`: Eio_mock.Flow.set_copy_method dst `Read_source_buffer; Eio_mock.Flow.on_copy_bytes dst [`Return 3; `Return 5]; Eio.Flow.copy src dst;; -+dst: wrote (rsb) ["foo"] -+dst: wrote (rsb) ["bar"] -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` ## read_all @@ -118,10 +112,7 @@ Copying from src using `Read_source_buffer`: traceln "Input length: %d\nOutput length: %d\nEqual: %b" (Cstruct.lenv data) (String.length got) (String.equal got (Cstruct.copyv data)); ;; -+Input length: 10240 -+Output length: 10240 -+Equal: true -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` ## write @@ -131,8 +122,7 @@ Copying from src using `Read_source_buffer`: let dst = Eio_mock.Flow.make "dst" in Eio_mock.Flow.on_copy_bytes dst [`Return 6]; Eio.Flow.write dst [Cstruct.of_string "foobar"];; -+dst: wrote "foobar" -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` ## Pipes @@ -217,6 +207,5 @@ Even if a fiber is already ready to run, we still perform IO from time to time: (fun () -> Eio.Flow.write w [Cstruct.of_string "msg"] ) -+Got "msg" -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` File "tests/domains.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/domains.md _build/default/tests/.mdx/domains.md.corrected diff --git a/_build/default/tests/domains.md b/_build/default/tests/.mdx/domains.md.corrected index 886226d..23792bf 100644 --- a/_build/default/tests/domains.md +++ b/_build/default/tests/.mdx/domains.md.corrected @@ -55,8 +55,7 @@ Here, we use a mutex to check that the parent domain really did run while waitin );; +Spawning new domain... +Other fibers can still run -+Got "Hello from new domain" from spawned domain -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Cancelling another domain: @@ -105,8 +104,7 @@ Using a cancellation context across domains is not permitted: let cc = Promise.await p in Eio.Cancel.cancel cc Exit );; -Exception: -Invalid_argument "Cancellation context accessed from wrong domain!". +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Likewise, switches can't be shared: @@ -126,7 +124,7 @@ Likewise, switches can't be shared: let sw = Promise.await p in Switch.fail sw Exit );; -Exception: Invalid_argument "Switch accessed from wrong domain!". +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Registering a release handler across domains: File "tests/process.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/process.md _build/default/tests/.mdx/process.md.corrected diff --git a/_build/default/tests/process.md b/_build/default/tests/.mdx/process.md.corrected index 3a8483c..6845f6b 100644 --- a/_build/default/tests/process.md +++ b/_build/default/tests/.mdx/process.md.corrected @@ -83,8 +83,7 @@ Spawning subprocesses in new domains works normally: # run @@ fun mgr env -> Eio.Domain_manager.run env#domain_mgr @@ fun () -> Process.run mgr [ "echo"; "Hello from another domain" ];; -Hello from another domain -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Calling `await_exit` multiple times on the same spawn just returns the status: @@ -115,8 +114,7 @@ Changing directory (unconfined): # run @@ fun mgr env -> let root = env#fs / "/" in Process.run mgr ~cwd:root [ "env"; "pwd" ];; -/ -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Changing directory (confined): @@ -129,8 +127,7 @@ Changing directory (confined): Eio.Path.with_open_dir subdir @@ fun subdir -> Eio.Path.save (subdir / "test-cwd") "test-data" ~create:(`Exclusive 0o600); Process.run mgr ~cwd:subdir [ "cat"; "test-cwd" ];; -test-data -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Trying to access a path outside of the cwd: @@ -138,7 +135,7 @@ Trying to access a path outside of the cwd: ```ocaml # run @@ fun mgr env -> Process.run mgr ~cwd:(env#cwd / "..") [ "cat"; "test-cwd" ];; -Exception: Eio.Io Fs Permission_denied _ +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` If a command fails, we get shown the arguments (quoted if necessary): File "tests/stream.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/stream.md _build/default/tests/.mdx/stream.md.corrected diff --git a/_build/default/tests/stream.md b/_build/default/tests/.mdx/stream.md.corrected index c5a035e..66c8c90 100644 --- a/_build/default/tests/stream.md +++ b/_build/default/tests/.mdx/stream.md.corrected @@ -122,15 +122,7 @@ A zero-length queue is synchronous: take t; take t; );; -+Adding 1 to stream -+Reading from stream -+Got 1 from stream -+Reading from stream -+Added 1 to stream -+Adding 2 to stream -+Added 2 to stream -+Got 2 from stream -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Cancel reading from a stream: @@ -276,19 +268,7 @@ Writers queue up: take t; take t; take t;; -+Adding 1 to stream -+Adding 2 to stream -+Adding 3 to stream -+Reading from stream -+Got 1 from stream -+Reading from stream -+Got 2 from stream -+Reading from stream -+Got 3 from stream -+Added 1 to stream -+Added 2 to stream -+Added 3 to stream -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Cancelling writing to a stream: File "tests/time.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/time.md _build/default/tests/.mdx/time.md.corrected diff --git a/_build/default/tests/time.md b/_build/default/tests/.mdx/time.md.corrected index 63884c6..2a65d08 100644 --- a/_build/default/tests/time.md +++ b/_build/default/tests/.mdx/time.md.corrected @@ -24,7 +24,7 @@ Check sleep works: Eio.Time.sleep clock 0.01; let t1 = Unix.gettimeofday () in assert (t1 -. t0 >= 0.01);; -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Cancelling sleep: File "tests/network.md", line 1, characters 0-0: /usr/bin/git --no-pager diff --no-index --color=always -u _build/default/tests/network.md _build/default/tests/.mdx/network.md.corrected diff --git a/_build/default/tests/network.md b/_build/default/tests/.mdx/network.md.corrected index 4a3a8d8..bf0858f 100644 --- a/_build/default/tests/network.md +++ b/_build/default/tests/.mdx/network.md.corrected @@ -111,12 +111,7 @@ Handling one connection using IPv6: ```ocaml # run (test_address addr6);; -+Connecting to server... -+Server accepted connection from client -+Server received: "Hello from client" -+Client received: "Bye" -+Client finished - cancelling server -Exception: Graceful_shutdown. +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Cancelling the read: @@ -148,10 +143,7 @@ Cancelling the read: let msg = read_all flow in traceln "Client received: %S" msg );; -+Connecting to server... -+Connection opened - cancelling server's read -+Client received: "Request cancelled" -- : unit = () +Exception: Unix.Unix_error(Unix.ENOMEM, "io_uring_queue_init", "") ``` Calling accept when the switch is already off: "/usr/bin/env" "bash" "-c" "opam exec -- dune build @install @check @runtest && rm -rf _build" failed with exit status 1 2026-06-09 10:09.29: Job failed: Failed: Build failed