Container runtime is reported unhealthy when `docker --version` takes longer than 2 seconds
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 25/100
Direzione di ricerca
Start with dockerVersionCommandTimeout in internal/docker/cli_orchestrator.go, where the 2-second limit on docker --version is applied, then follow how a timeout turns into Running: false. The RuntimeUnhealthy transition is in controllers/container_controller.go, and the NetworkReconciler retry is the log line to match. The issue does not settle the fix, since the options are still open in microsoft/aspire#19570, so agree the intended behaviour with maintainers first. Done means a timeout no longer marks the runtime unhealthy under the agreed rule, with tests covering the slow-command case.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
DCP considers the container runtime unhealthy when docker --version does not finish within 2 seconds (dockerVersionCommandTimeout in internal/docker/cli_orchestrator.go, unchanged on main). A container that is reconciled in that window goes to RuntimeUnhealthy (controllers/container_controller.go). @flojon analyzed this, with a deterministic reproduction, in microsoft/aspire#19570. I found no issue for it in this repository, so this adds the DCP side and data from another platform.
Environment: GitHub-hosted macOS Intel runner (4 vCPU), Docker engine in a Lima/QEMU VM, DCP 0.26.5 (Aspire 13.6.1).
Observed (logs)
-
The DCP debug logs of 25 CI sessions contain 714 runs of
docker --version: median 0.06 s, 95th percentile 0.64 s, 3 over 2 s (maximum 2.37 s). -
One session (passed) shows the sequence:
15:47:56.318 Running Docker command ... docker --version 15:47:56.951 Process started successfully (0.63 s after the command was issued) 15:47:58.321 Context expired, stopping process... (the 2 s limit) 15:47:59.752 NetworkReconciler: Container runtime is not healthy, retrying reconciliation later... -
In 3 of the 25 sessions DCP logged "Container runtime is not healthy", each time for the container network, which DCP retried (the tests passed). In none of them did a container reach
RuntimeUnhealthy. -
In two earlier CI runs of one sample (no DCP log was captured), a container went from
StartingtoRuntimeUnhealthyafter 0.2 s and 1.8 s, and everything that waited for it failed immediately.
Assumed (not shown)
- That those two failures were caused by this check. The signature matches, but I do not know which command failed.
- That the three slow calls belong to the three sessions where the runtime was reported unhealthy; I did not match them.
Suggestion
One of the options already listed in microsoft/aspire#19570, for example treating a --version timeout as "version unknown" instead of "not running", or retrying once before reporting Running: false.
- Lingua principale
- Go
- Stelle
- 192
- Fork
- 27
- Merge medio
- 2g 8h
- PR unite (30g)
- 20
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/dcp
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Add application iconAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di microsoft/dcp
Issue simili
-
Object Manager 1.13 resets a vCLU after sending a projectForse già presa @tciunelis l’ha presa oggi. Apertabug ready ticket
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
Domktorymysli/vclu#152 ·
I maintainer di solito rispondono entro 1 giorno
-
bug converter
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
grafana/sigma-rule-deployment#435 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
🤖 verification skills: harden check.sh and verify.sh argument and file handling (#391 follow-ups)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
google/go-containerregistry#2491 ·
I maintainer di solito rispondono entro 1 giorno