From 3cb12a0158224d80601918ca7c4b8c4758733061 Mon Sep 17 00:00:00 2001 From: Xylar Asay-Davis Date: Sat, 1 Aug 2026 11:15:00 +0200 Subject: [PATCH] Restrict UCX transports in CI to work around mpich 5 default mpich 5 is built as ch4:ucx,ofi in conda-forge, making UCX the default netmod (4.x was ofi-only). Every MPI_Init() now goes through UCX, including the one inside ESMF_RegridWeightGen for serial, single-rank mapping-file generation. On Azure-hosted GitHub runners, UCX enumerates the MANA adapter and fails to open an RDMA verbs interface on it: UCX ERROR uct_iface_open(ud_verbs/mana_0:1) failed: Address not valid MPIDI_UCX_init_worker(86): ucx function returned with failed status MPI_Init(argc=(nil), argv=(nil)) failed ESMF_RegridWeightGen then aborts with exit 143, failing all the remapping tests. Runners without a verbs device are unaffected, which is why this does not reproduce on typical development machines. Set UCX_TLS at the workflow level so it covers both the test job and the rattler-build package job. This is deliberately not set in pixi.toml's activation, since forcing IB traffic over TCP would hurt real parallel regridding with mapParallelExec on HPC machines. --- .github/workflows/build_workflow.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build_workflow.yml b/.github/workflows/build_workflow.yml index 5f7ec60..d211651 100644 --- a/.github/workflows/build_workflow.yml +++ b/.github/workflows/build_workflow.yml @@ -14,6 +14,11 @@ env: PATHS_IGNORE: '["**/README.md", "**/docs/**", "**/examples/**"]' # Static python version for setting up pre-commit linting PYTHON_VERSION: "3.14" + # mpich >=5 is built as ch4:ucx,ofi, so UCX is the default netmod. Azure-hosted + # GitHub runners expose a MANA RDMA device that UCX tries (and fails) to open, + # so MPI_Init() aborts inside ESMF_RegridWeightGen. Restrict UCX to transports + # that actually work on the runners. + UCX_TLS: "tcp,self,sm" jobs: pre-commit-hooks: