ci: pr-test-summary job shows red when the GitHub API returns persistent 5xx errors
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 72/100
Línea de trabajo
Empieza por ci/utils/pr_test_summary.py, en especial main() y el wrapper de reintentos para las llamadas a la API de GitHub, y luego lee el paso PR test summary en pr.yaml. Confirma cómo la excepción final de un 5xx persistente llega al código de salida del proceso. Está terminado cuando solo los errores HTTP y de red de la API se degradan a una advertencia registrada con código de salida 0, mientras que los errores de análisis u otros errores del script siguen haciendo fallar el job.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
The PR test summary (non-blocking) job in pr.yaml sometimes fails with a red check on PRs, for example:
Traceback (most recent call last):
File "/home/runner/work/cuopt/cuopt/ci/utils/pr_test_summary.py", line 325, in <module>
main()
...
urllib.error.HTTPError: HTTP Error 502: Bad Gateway
This was noticed in the discussion on #2241 (run https://github.com/NVIDIA/cuopt/actions/runs/41135602235). It was first mistaken for leftover RAPIDS CI telemetry, but it comes from this repo's own ci/utils/pr_test_summary.py.
Why it fails
pr_test_summary.py makes several GitHub API calls: it lists the run's jobs, downloads logs of failed jobs, and creates or updates the PR comment.
- Transient errors (429, 5xx, network errors) are retried up to 4 attempts with
2**attemptsecond backoff (#2204). That is roughly 14 seconds in total. If the API keeps returning errors for longer, the last exception is re-raised. - The script then exits non-zero, and the
run: python3 ci/utils/pr_test_summary.pystep has nocontinue-on-error. #1696 removed it and instead excluded the job from thepr-buildermerge gate (andcheckshasignored_pr_jobs: "pr-test-summary"). - The job is therefore not a merge gate, but it still shows as a failed check on the PR. That is confusing for contributors and reviewers, who may take it for a real test failure, and the summary comment is not posted.
Proposal
Make the summary best-effort so it cannot show red because of an API error:
- Catch persistent API errors at the end of
main(), print a warning to the job log, and exit 0. - Or set
continue-on-error: trueon the step.
Real script bugs (for example parsing errors) should still fail the job, so only the network and HTTP error classes would be swallowed.
Related: #2204, #1696, #2241.
- Lenguaje dominante
- Cuda
- Estrellas
- 1.1k
- Forks
- 249
- Merge medio
- 1 d 15 h
- PR fusionados (30 d)
- 124
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una 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 NVIDIA/cuopt
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 32/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 22/100
NVIDIA/cuopt#2255 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 Medio día Aptitud para principiantes 50/100
Los mantenedores suelen responder en 1 día
-
[BUG] Out-of-bounds read when solving a DataModel with lower/upper constraint boundsPosiblemente ocupada @ramakrishnap-nv la tomó hoy. Abiertobug
Dificultad 3/5 Medio día Aptitud para principiantes 55/100
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA/cuopt
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
leanprover-community/lean4game#589 ·
Los mantenedores suelen responder en 2 días
-
Bug good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
RazorConsole/RazorConsole#447 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
kyma-project/api-gateway#2933 ·
Los mantenedores suelen responder en 2 días
-
Dependabot compat-checks fails on every PRPosiblemente ocupada @dogancanbakir la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
HappyHackingSpace/witness#120 ·
Los mantenedores suelen responder en 1 día
-
proxmox_cluster_ha_rules: affinity is ignored for type=node-affinity (negative rules are created as positive)Posiblemente ocupada @thanos-k la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
ansible-collections/community.proxmox#556 ·
Los mantenedores suelen responder en 1 día