Repository navigation
CI: use the in-region EC2 Ubuntu mirror in the AWS EFA pod - #2385
Conversation
|
👋 Hi NirWolfer! Thank you for contributing to ai-dynamo/nixl. Your PR reviewers will review your contribution then trigger the CI to test your changes. 🚀 |
|
/build |
|
🤖 CI Triage Agent — TL;DR: The build failed on one flaky gtest, Full analysisSummary: Stage 198 "Test Sanitizer" (x86_64 asan_ubsan) failed: the meson sanitizer gtest suite reported Root cause: A race in the ETCD metadata backend, not in the commit under test. From the artifact
Corroborating evidence that no event was delivered: the gtest Secondary latent bug in the same area: Implicated commit: File: Suggested fix:
Related: PR #1930 (introduced the path), PR #2349 ("test: lengthen the md_manager remote-MD wait under sanitizers" — an earlier timeout-widening band-aid for this same fixture, showing the flake predates this build), PR #303 (original etcd watcher MD fetch/invalidate flow), PR #2385 (the unrelated commit under test).
|
On 2026-10-07 (18:01-20:12 UTC) three AWS EFA runs failed with "Unable to fetch some archives": every IPv4 address of archive.ubuntu.com and security.ubuntu.com timed out from the pod, while other downloads in the same pod (content.mellanox.com, the CUDA repo) were fast. Rewrite the Ubuntu archive and security URLs in /etc/apt to <region>.ec2.archive.ubuntu.com before the first apt-get update, so apt traffic stays inside the AWS region. Signed-off-by: NirWolfer <nwolfer@nvidia.com>
d713b56 to
ff1fdd8
Compare
Nothing verified the closed-source `ucx-spcx-plugin` still compiles when its ref or the UCX under it moved — that only surfaced in the nightly. Building it in the per-PR wheel job was not an option: this repo is public, everything in a PR's checkout is editable by whoever opened the PR, and that job's console can be published back to the PR, so cloning the plugin here would hand its read credential and its source to PR-authored code. `nixl-ci-build-wheel` now triggers `nixl-ci-compile-ucx-plugin` from `pipeline_start` and fails the job if it fails, before any wheel is built. That job's definition, matrix and build scripts live in the plugin repo (`ucx-spcx-plugin!45`), so a PR can choose which ref to build but cannot change what the job does; it runs on the NIXL Jenkins only so it can stage the built module on the shared PVC. Both arches build in one run, and only the module and a pass/fail cross back. - `build-wheel-matrix.yaml`: `pipeline_start` triggers the compile job and errors on failure; adds `UCX_SPCX_PLUGIN_REF` and `SPCX_STAGING_ROOT`; Build Wheel passes `--ucx-spcx-plugin-install` - `build-container.sh`: new `--ucx-spcx-plugin-install <dir>` stages a pre-built module into the build context, needing no gitlab credentials - `Dockerfile.manylinux`: installs the staged module when present, otherwise keeps compiling from staged source — `nixl-ci-build-wheel-nightly` does a full two-stage build and has no published `wheel_base` to compile against yet - `.gitignore`, `.ci/docs/ci-overview.md`, `.ci/docs/build-wheel-matrix-ci.md` updated Blocked on `ucx-spcx-plugin!45` merging to `v0.3.x` and DevOps applying `proj_jjb_nixl.yaml` to the NIXL Jenkins. The top commit pins the plugin ref to the MR branch so the flow can be exercised before then, and must be reverted before merge. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Wheel and container builds can install pre-built UCX SPCX plugin modules. - Nightly CUDA 12 and 13 wheel builds use reusable, architecture-specific base images. - **Bug Fixes** - Builds now fail when plugin compilation fails or required staged plugin files are missing. - Plugin staging directories are validated before use. - **Documentation** - Updated CI guidance to describe plugin workflows, sourcing, and security boundaries. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Signed-off-by: NirWolfer <nwolfer@nvidia.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Signed-off-by: Raul Akhmetshin <rakhmetshin@nvidia.com>
On 2026-10-07, between 18:01 and 20:12 UTC, three AWS EFA validation runs (#2305, #2299, #2326) failed while installing build dependencies with
E: Unable to fetch some archives. Every IPv4 address ofarchive.ubuntu.comandsecurity.ubuntu.comtimed out from the pod. Other downloads in the same pod were unaffected:content.mellanox.comdelivered the 835 MB DOCA host package in 5 s, and the CUDA repo answered normally. Runs that passed in that window also downloaded from the Ubuntu archive at between 81 B/s and 1.7 MB/s, against 11–19 MB/s on a normal day. Across the last 400 AWS runs these are the only apt failures.The pod reaches Canonical's archive over the internet. Canonical runs a regional mirror on EC2 in each AWS region (
<region>.ec2.archive.ubuntu.com, on EC2 addresses in eu-central-1) that carries the same suites, including-security. Pointing apt at it keeps that traffic inside the region.Changes:
contrib/aws-efa/aws_test.sh: before the firstapt-get update, the pod command rewriteshttp://archive.ubuntu.com/andhttp://security.ubuntu.com/under/etc/apttohttp://${AWS_DEFAULT_REGION:-eu-central-1}.ec2.archive.ubuntu.com/. It works with both the deb822 (24.04) andsources.list(22.04) formats, and does nothing if the image has neither URL..gitlab/build.shis unchanged, so other pipelines are not affected.contrib/aws-efa/README.md: note the mirror.Not changed: apt on 24.04 already retries each download 3 times with backoff by default, and the IPv6 attempts fail immediately (
Network is unreachable), so neitherAcquire::RetriesnorAcquire::ForceIPv4would have changed these failures. Theapt-get upgrade -yafter the DOCA repo is added stays; it moves the RDMA packages to the DOCA versions (#889).Summary by CodeRabbit