Container runtime is reported unhealthy when `docker --version` takes longer than 2 seconds
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 25/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Go
- Estrellas
- 192
- Forks
- 27
- Merge medio
- 2 d 8 h
- PR fusionados (30 d)
- 20
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/dcp
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
ContainerVolume stuck in PendingAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
Add application iconAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
Los mantenedores suelen responder en 1 día
Todos los issues de microsoft/dcp
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
schema-drift
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
stefanhoth/paperless-ngx-cli#61 ·
Los mantenedores suelen responder en 1 día
-
Project submission: CodeAFAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
slavakurilyak/awesome-ai-agents#888 ·
Los mantenedores suelen responder en 1 día
-
enhancement nav-pilot
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
kind/enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
Los mantenedores suelen responder en 1 día