Skip to content

setup-ocaml@v3: uses cache from wrong runner OS! #839

@edwintorok

Description

@edwintorok

I haven't seen this failure on setup-ocaml@v2, but ever since we switched to setup-ocaml@v3 we started getting these failures:
https://github.com/xapi-project/xen-api/actions/runs/10248744378/job/28350652648?pr=5910

Retrieve the opam cache
  Received 176160768 of 186735370 (94.3%), 168.0 MBs/sec
  Cache Size: ~178 MB (186735370 B)
  /usr/bin/tar -xf /home/runner/work/_temp/299ab2db-12c7-4633-989d-0e75c2e8beff/cache.tzst -P -C /home/runner/work/xen-api/xen-api --use-compress-program unzstd
  Received 186735370 of 186735370 (100.0%), 89.0 MBs/sec
  Cache restored successfully
  Cache restored from key: v1-setup-ocaml-opam-e12cd600e6d6884128d41217fa4937e2747c543a86ae90e2c4ff585433b945c7
Install opam
Initialise opam state
Remove the opam repositories
Initialise the opam repositories
Retrieve the dune cache
Install dune
  /opt/hostedtoolcache/opam/2.2.0/x86_64/opam install dune
  The following actions will be performed:
  === install 1 package
    ∗ dune 3.15.3
  
  <><> Processing actions <><><><><><><><><><><><><><><><><><><><><><><><><><><><>
  Received 488 of 488 (100.0%), 0.0 MBs/sec
  ⬇ retrieved dune.3.15.3  (https://opam.ocaml.org/cache)
  [ERROR] The compilation of dune.3.15.3 failed at "ocaml boot/bootstrap.ml -j 3".
  
  #=== ERROR while compiling dune.3.15.3 ========================================#
  # context     2.2.0 | linux/x86_64 | ocaml-base-compiler.4.14.2 | git+https://github.com/xapi-project/xs-opam.git
  # path        ~/work/xen-api/xen-api/_opam/.opam-switch/build/dune.3.15.3
  # command     ~/.opam/opam-init/hooks/sandbox.sh build ocaml boot/bootstrap.ml -j 3
  # exit-code   1
  # env-file    ~/.opam/log/dune-3081-79f2b5.env
  # output-file ~/.opam/log/dune-3081-79f2b5.out
  ### output ###
  # /home/runner/work/xen-api/xen-api/_opam/bin/ocamlrun: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by /home/runner/work/xen-api/xen-api/_opam/bin/ocamlrun)
  # /home/runner/work/xen-api/xen-api/_opam/bin/ocamlrun: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/runner/work/xen-api/xen-api/_opam/bin/ocamlrun)
  # /home/runner/work/xen-api/xen-api/_opam/bin/ocamlrun: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/runner/work/xen-api/xen-api/_opam/bin/ocamlrun)

We have a mix of ubuntu-22.04 and ubuntu-latest in our github workflows (by accident rather than intentionally) and it looks like they overwrite each-other's opam cache.
(we can fix the mix of runners on 'master', but that won't help with open PRs which will still have a mix).

The runner's OS should probably be included in the cache key.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions