Skip to content

ci(quarto): la jambe PR rend le site ENTIER (1192 entrees, sans cache) -- 53 min de rendu, gate auto-annule, PR jamais concluante #14429

Description

@jsboige

Symptome

Les PR Quarto ne concluent pas. Leur PR gate -- check requis -- sort cancelled, donc sans verdict, donc la PR reste BLOCKED indefiniment.

Chaine causale, mesuree sur #14225 (2026-09-03)

Un seul train de runs, cree a 04:15:31Z sur la tete f245243bf :

Etape Mesure
Validate Quarto build (PR) en file 04:15:31 -> 04:40:29 = 25 min d'attente de slot
step Render Quarto site (PR check) 3180 s = 53 min, puis tue par timeout-minutes: 60
PR gate (agregateur) auto-annule a 45 min faute de verdict (chemin STARVED #13510)
Resultat check requis cancelled -> aucun verdict -> PR BLOCKED

Le detail des 60 minutes du job Quarto :

  238 s  Set up Quarto            (retelecharge a chaque job : pool ephemere)
  178 s  Escape YAML separators
 3180 s  Render Quarto site (PR check)   <- CANCELLED au plafond

Cause

La jambe PR execute quarto render --to html nu. C'est un rendu du site entier :

  • 1192 entrees dans project.render (_quarto.yml)
  • _freeze/ n'est pas tracke (git ls-tree origin/main -- _freeze/ rend 0 fichier) : rien n'est mis en cache d'un run a l'autre, tout est recalcule a chaque fois

Alors que l'objet declare du job, dans son propre commentaire, est etroit :

« Bloque les PR qui etendent _quarto.yml / ajoutent un notebook / modifient une cellule markdown d'un notebook rendu »

Le job valide donc ce que la PR change, en rendant tout ce qu'elle ne change pas.

Pourquoi relever les plafonds n'est pas le correctif

#14412 a monte Quarto 30 -> 60 et le gate 28 -> 45. C'etait juste face a la mesure d'alors, et ca ne suffit pas : le run ci-dessus a ete tue au nouveau plafond de 60. Surtout, chaque relevement fait tenir un slot auto-heberge une heure entiere par PR Quarto, sur un parc mesure a 19/22 occupes. Le plafond ne cause pas la famine, il la finance.

Mesure de l'ampleur

Le script de scope applique aux 7 PR Quarto en vol ce jour :

PR documents rendus reellement touches
#14225 2 / 1192
#14128 1 / 1192
#14405 1 / 1192
#14409 1 / 1192
#14410 1 / 1192
#14411 1 / 1192
#14131 0 / 1192

Six PR sur sept rendent 1 ou 2 documents utiles sur 1192 (0,08 % a 0,17 %). La septieme, #14131, ne touche aucun document rendu et payait quand meme un rendu complet d'une heure.

Acceptance

  • La jambe PR ne rend que les documents que la PR ajoute/modifie.
  • Config projet, theme, scripts de pre-traitement, ou suppression d'un document rendu => rendu COMPLET (biais conservateur).
  • Aucun document rendu touche => rendu saute, pas un quarto render sur liste vide (qui rendrait le site entier).
  • La jambe push/deploy sur main garde son rendu complet : c'est elle qui couvre la casse cross-fichier.
  • Controles positifs en fichier, pas seulement dans un log de session.

Limite assumee

Un rendu scope ne voit pas la casse qu'un fichier change provoque dans un fichier inchange (reference croisee, entree de barre laterale). Cette classe reste couverte par le rendu complet de la jambe deploy sur main -- un merge plus tard au lieu d'une PR plus tot. C'est le bon sens de l'echange tant que l'alternative est une verification qui ne peut pas conclure du tout.

Activity

  1. added a commit that references this issue on Sep 3, 2026
  2. added a commit that references this issue on Sep 3, 2026
  3. added 5 commits that reference this issue on Sep 4, 2026
  4. jsboige commented on Sep 30, 2026

    @jsboige
    OwnerAuthor

    Verification G.9 de fermeture (tranche 8 de #15258, lane myia-po-2024:CoursIA) : fermeture legitime, aucune reouverture.

    • Fermee par myia-ai-01 a 2026-09-03T09:36:16Z, commit_id: none (fermeture manuelle).
    • PR livrante : fix(ci,#14429): scope the Quarto PR render to the documents the PR changed (1192 -> 1-2) #14430 fix(ci,#14429): scope the Quarto PR render to the documents the PR changed (1192 -> 1-2) — MERGED a 2026-09-03T09:36:15Z (ecart 1 s) — Grain: MED/guard — lane myia-ai-01:CoursIA (seule occurrence de cette tranche ou la lane livreuse est celle du coordinateur).
    • Substance : l'objet exact de l'issue (la jambe PR du rendu Quarto traitait le site ENTIER — 1192 entrees sans cache, 53 min de rendu, gate auto-annule ; le rendu est desormais scope aux documents changes par la PR).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions