mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-04 10:48:20 +00:00
ci: let apt fail over between mirrors instead of hanging
The hosted Ubuntu x64 runners read the archive through mirror+file:/etc/apt/apt-mirrors.txt. With Acquire::Retries above 0 (including the apt default of 3), a failover from a dead first entry of that list (connection refused, DNS failure or a stalled host) to the next entry goes idle: apt-get fetches a few InRelease files from the second mirror and then waits until the step timeout. With Acquire::Retries=0 the same failover completes. Seen on noble (apt 2.8.3) and jammy (apt 2.4.14). Every apt step this branch hardened now picks the retry count at runtime, applied to both update and install: 0 when the runner has the mirror list (moving to the next mirror is the retry), 3 otherwise (arm64 runners and any host with plain sources keep their retries). --error-on=any, the http and https timeouts and the step timeouts are unchanged. Proof: the step text extracted from the edited _build.yml (update plus install of zlib1g-dev), run under bash -e in ubuntu:24.04 and ubuntu:22.04 containers with runner-shaped mirror lists: - first mirror refused: exit 0 in 8 s / 9 s, every index and deb fetched from the second mirror - first mirror stalled (192.0.2.1): exit 0 in 68 s / 69 s, one 30 s timeout each for update and install, then the second mirror - healthy first mirror: exit 0 in 7 s / 9 s - no mirror list, plain sources: the prefix keeps Retries=3, exit 0 in 8 s / 7 s - every mirror dead: update exits 100 in under 1 s, install skipped - revert check, the previous step text with a dead first mirror (refused or stalled): idle with no Packages index at the 180 s cap on both releases Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>
This commit is contained in:
1 parent
a545a0aa8c
commit
e3a9fa34ed
15 files changed
+34
-34
No files matched your search
@@ -96,7 +96,7 @@ jobs:
|
||||
- name: Install build dependencies
|
||||
if: ${{ matrix.language == 'c-cpp' }}
|
||||
timeout-minutes: 10
|
||||
run: sudo apt-get -o Acquire::Retries=3 -o Acquire::http::Timeout=30 -o Acquire::https::Timeout=30 --error-on=any update && sudo apt-get -o Acquire::Retries=3 -o Acquire::http::Timeout=30 -o Acquire::https::Timeout=30 install -y zlib1g-dev
|
||||
run: APT_RETRIES=3; [ -f /etc/apt/apt-mirrors.txt ] && APT_RETRIES=0; sudo apt-get -o Acquire::Retries=$APT_RETRIES -o Acquire::http::Timeout=30 -o Acquire::https::Timeout=30 --error-on=any update && sudo apt-get -o Acquire::Retries=$APT_RETRIES -o Acquire::http::Timeout=30 -o Acquire::https::Timeout=30 install -y zlib1g-dev
|
||||
|
||||
# PR c-cpp: compile the third-party objects (tree-sitter grammars,
|
||||
# sqlite, mimalloc, lz4, zstd, the tree-sitter runtime: ~1.3 GB of
|
||||
|
||||
Reference in new issue
Block a user