Skip to content

ci(ebpf): add retry+timeout to apt-get and docker-build steps - #714

Merged
mlieberman85 merged 1 commit into
mainfrom
fix-ebpf-apt-install-retry
Aug 21, 2026
Merged

ci(ebpf): add retry+timeout to apt-get and docker-build steps#714
mlieberman85 merged 1 commit into
mainfrom
fix-ebpf-apt-install-retry

Conversation

@mlieberman85

Copy link
Copy Markdown
Contributor

Summary

m663 CI experience showed the ebpf-tracing lane's two long-running steps can hang indefinitely on runner network / Docker Hub issues:

  • `Install eBPF build deps` (apt-get update + install) — stuck 45+ min during m663 US3 rebase; normally <1 min
  • `Container harness (m212 ring_buffer_overflows verification)` (docker build + run) — stuck 45+ min during m663 Polish; normally ~10 min

Both now wrapped in `nick-fields/retry@v4` (already used elsewhere in `perf.yml`). Bounds:

Step Per-attempt timeout Attempts
apt-get 5 min 3
docker 20 min 2

Timeouts are generous (5-10x typical duration) so real slowness still passes; only true hangs get killed and retried.

Real failures aren't retried

  • Kernel-verifier reject → exits non-zero cleanly on first attempt → bails immediately (no wasted retries)
  • Cargo compile error → same
  • The retry only kicks in for TRUE hangs (nothing exiting) or transient network resets

Follow-on

Flake fixes done: #1 spdx3-validate retry (#713 merged) + #2 this PR.

Flake #3 (GHA runner image drift) is unfixable from our side — GHA doesn't expose date-pinned runner labels, and the current m234 canary only tests bpf-linker build (not kernel load). Skipping.

🤖 Generated with Claude Code

m663 CI experience showed the ebpf-tracing lane's two long-running
steps can hang indefinitely on runner network / Docker Hub issues:

- `Install eBPF build deps` (apt-get update + install) — stuck for
  45+ min during m663 US3 rebase; normally completes in <1 min.
- `Container harness (m212 ring_buffer_overflows verification)`
  (docker build + docker run) — stuck for 45+ min during m663
  Polish CI cycle; normally completes in ~10 min.

Both are wrapped in `nick-fields/retry@v4` (already used for perf
tests). Bounds:

- apt-get: 5-min per-attempt timeout, 3 attempts
- docker: 20-min per-attempt timeout, 2 attempts

Timeouts are generous (5x-10x typical duration) so real slowness
still passes; only true hangs get killed and retried. Real failures
(kernel-verifier reject, cargo compile error, etc.) bail on the
first attempt because they exit non-zero cleanly rather than
hanging.

## Not addressed here

- Docker Hub outage that prevents the base image from downloading
  entirely: 2 attempts × 20 min = 40 min max wait, then hard fail.
  Acceptable — a Docker Hub outage isn't a flake, it's an infra
  incident.
- The underlying "apt/docker occasionally hangs on GHA" pattern
  is a GHA-side issue; this is the closest we can get without
  moving off hosted runners.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@mlieberman85
mlieberman85 merged commit a1261d7 into main Aug 21, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant