Repository navigation
fix(test,#18027): le test du plafond d'admission attend la decision du 3e demandeur - #18040
Conversation
…u 3e demandeur, pas 4 s Sous Windows natif, une admission lean_exec coute ~6,2 s (tasklist ~3,6 s), plus que les 4 s de SLEEP_CMD : les deux premiers runs etaient morts quand le 3e comptait les runs vivants, qui etait donc admis ([0, 0, 0]). Les deux premiers attendent desormais un fichier de liberation pose apres la decision du 3e. Assertions inchangees ; temoin negatif verifie (cap desactive -> FAIL). 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 |
|
Trivial-diff advisory (#15740, non bloquant). |
|
[ADJOINT PREFLIGHT] Prévalidation tierce, sans approbation ni autorisation de merge. Le champ bloquant est |
|
[ADJOINT PREFLIGHT] Prévalidation tierce à la tête exacte, sans approbation ni autorisation de merge. Le corps entier, les quatre avis automatisés, le dossier BLOCKED précédent, zéro review et zéro thread inline ont été relus ; diff du test +21/-2, aucune autre modification. Le maintien des deux premiers processus dépend maintenant d'un fichier posé après la décision du troisième ; la garde de 90 s borne l'attente. À cette tête, la dernière jambe PR gate est SUCCESS (12:40Z), tout comme Scripts Tests (CPU) et les autres noms latest-wins, sans jambe en cours ; B.0 rc=0 après lecture du précédent dossier. OPEN/MERGEABLE/CLEAN. Le minuteur DWELL antérieur est levé ; le budget LIGHT G-VAR-2 et l'avis trivial-diff restent des sujets de décision du coordinateur, non des échecs de checks. Validation Windows 46 passed, 1 skipped et témoin négatif sont rapportés dans le body par l'auteur ; je n'ai pas rejoué ces tests localement. Décision finale et merge réservés à ai-01. |
Grain: LIGHT/test — lane myia-ai-01:CoursIA — prev: LIGHT/guard #18030
Constat
Sous Windows natif,
test_admission_cap_machine_wide_two_worktreeséchouait avecattendu 2 admissions, vu [0, 0, 0]: le troisième demandeur était admis alors que le plafond vaut 2 (#18027).Cause : la synchronisation du test, pas le plafond
Le plafond est appliqué. Le test ne le mettait pas à l'épreuve sous Windows :
SLEEP_CMD, soit 4 s fixes ;live_registered_budgets()(scripts/lean/lean_exec.py:323-339, filtrepid_aliveligne 335), puis refuse siregistered + budget > cap(lean_exec.py:1637) ;scan_native_population(), qui lancetasklist(lean_exec.py:238-249), puis parmeasure_resources().Mesuré sur myia-ai-01 (Windows 11, Python 3.14.3) :
tasklist /FO CSV /NHprend 3,6 s, et unlean_exec.py run -- python -c passcomplet prend 6,2 s (trois mesures : 6,24 / 6,18 / 6,20 s). Quand le troisième comptait, les deux premiers avaient fini leurs 4 s :registered = 0, admission accordée.Contre-épreuve sur le code de
main, sans toucher àlean_exec.py: même test, maintien porté à 4 s → FAIL[0, 0, 0]; porté à 15 s → PASS.Correctif
Le maintien ne dépend plus d'une durée. Les deux premiers runs attendent un fichier de libération, que le test ne pose qu'après la décision du troisième demandeur (garde de sécurité : 90 s). Le troisième lance une commande immédiate : s'il était admis à tort, il rendrait 0 tout de suite au lieu d'attendre une libération qui ne viendrait qu'après lui.
Les assertions sont inchangées : deux admissions, troisième refusé en
EXIT_REFUSED, motifcap. C'est le principe déjà écrit dans le test pour l'enregistrement (#15940) : se synchroniser sur l'état observable, jamais sur un délai.Validation
1 passed(14,7 s).registered + budget > capdésactivé danslean_exec.py(copie de sauvegarde puis restauration) → le test échoue avecattendu 2 admissions, vu [0, 0, 0]. Le test détecte donc toujours un plafond non appliqué.scripts/lean/tests/test_lean_exec.pysous Windows :46 passed, 1 skipped(186 s).Scripts Tests (CPU)de cette PR.Closes #18027
🤖 Generated with Claude Code