GitForge runner: bound the container-reap and backend-health calls on the failure path

Aperta
#37 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
67/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
docker, rust
Ambito
backend, devops

Direzione di ricerca

Start in crates/gitforge-runner/src/executor.rs and compare the failure path with the preflight teardown path that already uses a 15-second timeout. Trace backend_health() into crates/gitforge-sandbox/src/docker.rs to understand the Docker container listing call. Done means both failure-path calls are bounded and a reap timeout surfaces as a distinct runner error within the timeout.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug ci

On the job failure path, crates/gitforge-runner/src/executor.rs arms call self.reap_attempt_containers(job_id).await and backend_health().await with no timeout, while the preflight-teardown path uses timeout(Duration::from_secs(15), …). The unbounded backend_health goes on to an unbounded bollard list_containers in crates/gitforge-sandbox/src/docker.rs. A wedged Docker daemon therefore wedges the runner instead of failing the job.

Work

  • Bound both calls with the same 15-second budget the preflight path already uses.
  • Surface a distinct failure class when the reap times out, so a runner wedge is not reported as a job failure.

Acceptance

  • A job whose containers cannot be reaped fails with a runner error within the timeout instead of hanging.

Tracking: task #202.

Lingua principale
Rust
Stelle
11
Fork
1
Merge medio
9h 48m
PR unite (30g)
13

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di aliasfoxkde/FireCraft

Tutte le issue di aliasfoxkde/FireCraft

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.