Repository navigation
fix(ci,#18131): queue-ghost-watch reconnait les zombies du 13/09 par identite -- une seule alerte ouverte a la fois - #18133
Conversation
…y identity, one open alert at a time The watcher opened a DRIFT issue every day since 22/09 (6 open alerts). The "live" runs it alarmed on were 37 runs stuck in queued since 2026-09-13 (cancel and force-cancel answer 409): a second unpurgeable incident that the 2026-08-20 date cutoff counts as live. - gh_queue_health.py: KNOWN_ZOMBIE_RUN_IDS (the 37 measured IDs) and split_live(); in --watch mode only UNKNOWN live runs queued longer than --stale-hours (default 24) count as drift. Fresh backlog of a saturated pool is reported, not alarmed on. --now makes replays deterministic. The four-bucket measurement verdict is unchanged. - queue-ghost-watch.yml: a persisting DRIFT comments on the open alert instead of creating a new issue. - 6 tests: identity set, 2 negative controls (known zombies, 259 fresh runs), positive control (unknown stale run), threshold, malformed --now. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
[ADJOINT PREFLIGHT] |
Constat
queue-ghost-watchouvre une issue DRIFT par jour depuis le 22/09 : #17399, #17524, #17640, #17796, #17931 et #18036. Ces six issues sont fermees en doublon de #18131.Les runs « live » sur lesquels l'organe alertait sont 37 runs bloques en
queueddepuis le 13/09 (08:46-09:10Z) :wt/vibe-g2-quantconnect(fix(qc,#15719): fournée QuantConnect g2 — 7 findings, scanner 0 (forme canonique) #15946, MERGED), soit un run par workflow de la fast lane ;Variation Tag Guardsurmain.cancelcommeforce-cancelrendent 409 « Cannot cancel a workflow run that has not been queued yet » (mesure sur le run 34749036117). C'est un second incident fantome, permanent. Le cutoff par date du 20/08 le compte comme file vivante.Ce que fait la PR
scripts/ci/gh_queue_health.pyKNOWN_ZOMBIE_RUN_IDS: les 37 identifiants mesures, avec la reconnaissance par identite, pas par compte.split_live(): en mode--watch, seuls les runs inconnus bloques au-dela de--stale-hours(24 h par defaut) comptent comme derive. La file fraiche d'un pool sature est rapportee, sans alerter.--nowrend les rejeux deterministes.verdict()n'est pas touche)..github/workflows/queue-ghost-watch.yml: une DRIFT qui persiste commente l'alerte ouverte, au lieu d'ouvrir une nouvelle issue. Le body affiche la ventilation zombies connus / inconnus bloques / file fraiche.Validation
python -m pytest scripts/tests/test_gh_queue_health.py -q: 30 passed, dont les 24 tests existants intacts et 6 nouveaux :--nowmalforme donne BROKEN.--watch --repo jsboige/CoursIA) :OK, rc=0.ghosts 18, live 37, known_zombies 37, stale_live 0, fresh_live 0.compile()), et le YAML se parse.Hors perimetre
La purge des runs zombies elle-meme : aucune mutation API ne la permet (#13579).
Closes #18131
Grain: LIGHT/guard — lane myia-ai-01:CoursIA
🤖 Generated with Claude Code