Constat
Le job Scripts Tests (CPU) est rouge sur main depuis la nuit du 26 au 27/09. C'est le cas aussi à d93f97268b, qui contient le correctif Actuariat #18005. Onze tests de scripts/lean/tests/test_lean_exec.py échouent. Le rouge dépend du runner : myia-ai-01-wsl-7 passe dans le run 36300108256 et échoue dans le run 36293494624. Les runs PR rebasés sur le même main passent ou échouent selon la machine qui les prend. Les PRs qui héritent de ce rouge sont #18000, #18001, #18010, #18013 et #18015.
Signature (job 108554231586, runner myia-po-2024-linux-docker-3) :
AssertionError: insufficient budget (binding=ram): cpu=14 ram=0 commit=-14 disk_free=626.83GB
= 11 failed, 16335 passed, 111 skipped, 9 xfailed, 3 warnings in 530.02s =
Cause
Les tests qui lancent lean_exec.py en sous-processus éprouvent le cap machine-wide, le lease par arbre, la file bornée et le kill-tree. Ils passent par la vraie mesure measure_resources() avec le budget par défaut LEAN_EXEC_MEM_PER_JOB_MB=2048. Dès que MemAvailable du runner tombe sous 2 Go, ram = avail // 2048 = 0, et l'admission refuse le run avec le code 125. C'est le cas dans un conteneur à mémoire bornée qui exécute la suite en -n 4. Les tests ne mesurent alors plus la mécanique qu'ils visent. Ils mesurent la RAM libre de l'hôte à l'instant du test.
La porte RAM elle-même est couverte à part, par des tests qui fixent explicitement leurs paramètres : test_compute_granted_min_of_sources, test_measure_resources_commit_binding_through_real_path et leurs voisins.
Correctif attendu
Le helper _env des tests fixe LEAN_EXEC_MEM_PER_JOB_MB, LEAN_EXEC_COMMIT_PER_JOB_MB et LEAN_EXEC_MIN_FREE_GB à des valeurs qui neutralisent la porte ressources. Un extra explicite peut toujours les surcharger. Contrôle négatif : forcer un budget RAM impossible dans l'environnement du lanceur fait échouer la version actuelle et passer la version corrigée.
Grain: LIGHT/test — lane myia-ai-01:CoursIA
Constat
Le job
Scripts Tests (CPU)est rouge surmaindepuis la nuit du 26 au 27/09. C'est le cas aussi àd93f97268b, qui contient le correctif Actuariat #18005. Onze tests descripts/lean/tests/test_lean_exec.pyéchouent. Le rouge dépend du runner :myia-ai-01-wsl-7passe dans le run 36300108256 et échoue dans le run 36293494624. Les runs PR rebasés sur le mêmemainpassent ou échouent selon la machine qui les prend. Les PRs qui héritent de ce rouge sont #18000, #18001, #18010, #18013 et #18015.Signature (job 108554231586, runner
myia-po-2024-linux-docker-3) :Cause
Les tests qui lancent
lean_exec.pyen sous-processus éprouvent le cap machine-wide, le lease par arbre, la file bornée et le kill-tree. Ils passent par la vraie mesuremeasure_resources()avec le budget par défautLEAN_EXEC_MEM_PER_JOB_MB=2048. Dès queMemAvailabledu runner tombe sous 2 Go,ram = avail // 2048 = 0, et l'admission refuse le run avec le code 125. C'est le cas dans un conteneur à mémoire bornée qui exécute la suite en-n 4. Les tests ne mesurent alors plus la mécanique qu'ils visent. Ils mesurent la RAM libre de l'hôte à l'instant du test.La porte RAM elle-même est couverte à part, par des tests qui fixent explicitement leurs paramètres :
test_compute_granted_min_of_sources,test_measure_resources_commit_binding_through_real_pathet leurs voisins.Correctif attendu
Le helper
_envdes tests fixeLEAN_EXEC_MEM_PER_JOB_MB,LEAN_EXEC_COMMIT_PER_JOB_MBetLEAN_EXEC_MIN_FREE_GBà des valeurs qui neutralisent la porte ressources. Unextraexplicite peut toujours les surcharger. Contrôle négatif : forcer un budget RAM impossible dans l'environnement du lanceur fait échouer la version actuelle et passer la version corrigée.Grain: LIGHT/test — lane myia-ai-01:CoursIA