Repository navigation
guard(#15157): appartenance du mur agrege CI visible (EVASION) + prose honnete du filet daemon - #16697
Conversation
…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>
|
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 |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
Path-collision (organ #13359/#13615)Cette PR #16697 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
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) :
Garde d'appartenance (
supervise.sh) :report_slice_membership()confronte le nombre de sous-groupes de la slice au nombre de conteneurs vivantslabel=coursia-ci=1et crieEVASIONsur décalage — jusqu'ici, un conteneur lancé sans--cgroup-parent(à la main, pour un debug) échappait au mur en silence :assert_ci_slicene vérifiait que l'existence des plafonds, jamais que les conteneurs y sont. Appelé depuiscmd_status(post-démarrage, hors course de création) sous un bloc== mur agrégé ==. Advisory non bloquant : undietuerait un pool sain sur un décalage transitoire de création.Prose honnête (
persist/coursia-ci.slicel.19-27 + en-têtesupervise.shborne 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, aucuncgroup-parentpar 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 platcoursia-ci.slicecré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)
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.test_supervise_guards.sh: 109 PASS / 0 FAIL (54 tests, dont 2 nouveaux).EVASIONavec compte (conteneurs=2).appartenance OK, pas de faux positif.ps --filter label=coursia-ci=1rend une liste pilotable parSTUB_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