Skip to content

guard(#15157): appartenance du mur agrege CI visible (EVASION) + prose honnete du filet daemon - #16697

Merged
myia-ai-01 merged 1 commit into
mainfrom
guard/15157-slice-membership
Sep 18, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
guard/15157-slice-membership

Conversation

@jsboige

@jsboige jsboige commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Grain: MED/guard — lane myia-po-2027:CoursIA — prev: LIGHT/refactor #16292

Ce que fait cette PR

Corrections repo-exécutables de #15157 (le mur agrégé CI : le filet de daemon décrit par l'unité n'existe pas sur le daemon qui fait tourner la flotte) :

  1. Garde d'appartenance (supervise.sh) : report_slice_membership() confronte le nombre de sous-groupes de la slice au nombre de conteneurs vivants label=coursia-ci=1 et crie EVASION sur décalage — jusqu'ici, un conteneur lancé sans --cgroup-parent (à la main, pour un debug) échappait au mur en silence : assert_ci_slice ne vérifiait que l'existence des plafonds, jamais que les conteneurs y sont. Appelé depuis cmd_status (post-démarrage, hors course de création) sous un bloc == mur agrégé ==. Advisory non bloquant : un die tuerait un pool sain sur un décalage transitoire de création.

  2. Prose honnête (persist/coursia-ci.slice l.19-27 + en-tête supervise.sh borne 2) : le paragraphe affirmait « tout conteneur du daemon y atterrit par le défaut du daemon.json » — faux pour le daemon de la flotte (mesure Mur agrege CI : le filet de daemon decrit par l'unite n'existe pas sur le daemon qui fait tourner la flotte (et le nom plat cree un leurre sans plafond) #15157 : Docker Desktop, pilote cgroupfs, aucun cgroup-parent par défaut ; le défaut ne vit que sur le daemon docker-ce qui héberge 0 conteneur). Réécrit : entrée par le drapeau explicite de supervise.sh, évasion manuelle visible par la nouvelle garde, + piège de recopie documenté (sous cgroupfs, le nom plat coursia-ci.slice crée un cgroup à plat sans plafond — leurre homonyme ; la valeur correcte est le chemin imbriqué coursia.slice/coursia-ci.slice).

Ce que cette PR ne fait PAS (périmètre machine, reste à ai-01/Maintenance)

  • Correction 3 de l'issue : poser le défaut sur le daemon Docker Desktop avec le chemin imbriqué et retirer le leurre à plat (rmdir /sys/fs/cgroup/coursia-ci.slice, vide). Opération machine, hors dépôt.

Validation

  • bash -n : supervise.sh + test_supervise_guards.sh OK.
  • Suite complète test_supervise_guards.sh : 109 PASS / 0 FAIL (54 tests, dont 2 nouveaux).
    • Test 53 : 2 conteneurs stubés / 0 sous-groupe → ligne EVASION avec compte (conteneurs=2).
    • Test 54 : 2 conteneurs / 2 sous-groupes → appartenance OK, pas de faux positif.
  • Stub docker étendu : ps --filter label=coursia-ci=1 rend une liste pilotable par STUB_CI_CONTAINER_IDS.

See #15157 (corrections 1, 2 et tests ; la correction 4 — daemon.json — était déjà livrée sur main, la correction 3 reste périmètre machine)

🤖 Generated with Claude Code

…filet daemon

report_slice_membership confronte les sous-groupes de la slice aux
conteneurs label=coursia-ci=1 et crie EVASION sur decalage (cmd_status) ;
la prose de coursia-ci.slice et l'en-tete supervise.sh affirmaient un
defaut daemon qui ne couvre pas le daemon de la flotte (Docker Desktop,
cgroupfs, zero cgroup-parent par defaut -- le defaut ne vit que sur le
daemon docker-ce vide). Piege de recopie documente : nom plat = leurre
sans plafond sous cgroupfs ; chemin imbrique complet requis.

Suite : 109 PASS / 0 FAIL (tests 53-54 nouveaux, stub docker ps export).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2027:CoursIA a deja consomme son budget LIGHT du jour (#16526 (merge a 2026-09-18T06:26:38Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added the variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) label Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2027:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-18) :

  • GENRE-RUN : run consecutif d'un genre LIGHT (voir signals.runs dans le log du job)

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16697 (guard(#15157): appartenance du mur agrege CI visible (EVASION) + prose honnete du filet daemon) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants