From eafe18e7beba589ab1559b5b5013223c457f480c Mon Sep 17 00:00:00 2001 From: jsboige Date: Thu, 17 Sep 2026 21:51:32 +0200 Subject: [PATCH] fix(runner,#16578): les lanceurs po-2024 pointaient le workspace purge La migration du 2026-09-17 (C:\dev\CoursIA -> D:\Dev\CoursIA) a laisse le defaut de chemin des deux lanceurs po-2024 sur l'arborescence videe. Le defaut n'est pas cosmetique : `[ -r "$MASTER_ENV" ]` echoue AVANT la lecture du token, donc le lanceur sort en `exit 1` et le pool reste a ZERO jusqu'a intervention -- exactement l'incident du 2026-09-09 que coursia-lean-start.sh existe pour fermer. Mesure WSL firsthand : /mnt/d/Dev/CoursIA/.secrets/master.env LISIBLE, .../scripts/ci/docker/linux-runner/supervise.sh LISIBLE, /mnt/c/dev/CoursIA/.secrets/master.env ABSENT. Le repertoire /mnt/c/dev/CoursIA existe encore en residu -- c'est pourquoi le controle porte sur le secret et non sur le dossier. - coursia-lean-start.sh / coursia-runner-start.sh (po-2024) : defaut C: -> D:. - coursia-runner-start.sh : recoit COURSIA_REPO_DIR / COURSIA_MASTER_ENV, comme sa jambe soeur, et derive SUPERVISE de REPO_DIR (il etait fige). - README + commentaire ai-01 : prose alignee, avec la mise en garde que les deux machines ne different plus que par un segment (Dev/). coursia-waiters-start.sh est INCHANGE : il vise ai-01, dont le depot est bien sous /mnt/d/CoursIA. Co-Authored-By: Claude Sonnet 5 --- scripts/ci/docker/linux-runner/persist/README.md | 9 ++++++++- .../persist/ai-01/coursia-runner-start.sh | 2 +- .../linux-runner/persist/coursia-lean-start.sh | 10 ++++++++-- .../linux-runner/persist/coursia-runner-start.sh | 14 +++++++++++--- 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/scripts/ci/docker/linux-runner/persist/README.md b/scripts/ci/docker/linux-runner/persist/README.md index f0ec705e7f..5ba536f71a 100644 --- a/scripts/ci/docker/linux-runner/persist/README.md +++ b/scripts/ci/docker/linux-runner/persist/README.md @@ -45,7 +45,9 @@ de fichier, **apres** la section « Voir aussi ». ### 1. La PR #15094 patche une copie qui ne tourne pas sur ai-01 `persist/coursia-runner.service` et `persist/coursia-runner-start.sh` sont ceux de -**po-2024** : depot sous `/mnt/c/dev/CoursIA`, prefixe `myia-po-2024-linux-docker`, +**po-2024** : depot sous `/mnt/d/Dev/CoursIA` (migration du 2026-09-17 ; le +defaut etait `/mnt/c/dev/CoursIA` avant, cf. #16578), prefixe +`myia-po-2024-linux-docker`, et un wrapper qui relaie n'importe quelle sous-commande (`exec "$SUPERVISE" "$@"`). Les fichiers vivants d'ai-01 sont differents sur les trois points qui comptent : @@ -54,6 +56,11 @@ est le **nombre de slots**, pas une sous-commande. Un correctif porte sur la cop a plat ne touche donc pas la machine qui a gele. C'est ce que le sous-repertoire `ai-01/` rend desormais impossible a confondre. +**Les deux chemins ne different plus que par un segment** (`/mnt/d/Dev/CoursIA` +pour po-2024, `/mnt/d/CoursIA` pour ai-01) : les relire a la lettre avant de +conclure un drift -- une difference d'un seul composant est exactement ce que +l'oeil saute. + ### 2. `systemctl start` ignore `disabled` -- une unite desactivee redemarre au boot J'ai ecrit que la machine etait au repos parce que les deux unites etaient diff --git a/scripts/ci/docker/linux-runner/persist/ai-01/coursia-runner-start.sh b/scripts/ci/docker/linux-runner/persist/ai-01/coursia-runner-start.sh index 93731d2f0c..e5b93b893c 100644 --- a/scripts/ci/docker/linux-runner/persist/ai-01/coursia-runner-start.sh +++ b/scripts/ci/docker/linux-runner/persist/ai-01/coursia-runner-start.sh @@ -6,7 +6,7 @@ # CE QUI DISTINGUE CETTE COPIE DE persist/coursia-runner-start.sh # --------------------------------------------------------------- # La copie a la racine de persist/ est celle de po-2024 : depot sous -# /mnt/c/dev/CoursIA, prefixe myia-po-2024-linux-docker, et surtout un +# /mnt/d/Dev/CoursIA, prefixe myia-po-2024-linux-docker, et surtout un # `exec "$SUPERVISE" "$@"` qui relaie n'importe quelle sous-commande. Celle-ci # vit sur ai-01 : depot sous /mnt/d/CoursIA, prefixe myia-ai-01-wsl, et le # premier argument est le NOMBRE DE SLOTS, pas une sous-commande. diff --git a/scripts/ci/docker/linux-runner/persist/coursia-lean-start.sh b/scripts/ci/docker/linux-runner/persist/coursia-lean-start.sh index 94531f7a56..fb43ea31e2 100644 --- a/scripts/ci/docker/linux-runner/persist/coursia-lean-start.sh +++ b/scripts/ci/docker/linux-runner/persist/coursia-lean-start.sh @@ -28,8 +28,14 @@ # jamais en argv). set -uo pipefail -MASTER_ENV="${COURSIA_MASTER_ENV:-/mnt/c/dev/CoursIA/.secrets/master.env}" -REPO_DIR="${COURSIA_REPO_DIR:-/mnt/c/dev/CoursIA}" +# Le defaut de chemin a DEJA demenage : la migration du 2026-09-17 a deplace le +# depot `C:\dev\CoursIA` -> `D:\Dev\CoursIA`, et ce fichier pointait encore +# l'arborescence purgee. Ce n'etait pas cosmetique : `[ -r "$MASTER_ENV" ]` +# echoue AVANT la lecture du token, donc le lanceur sortait en `exit 1` et le +# pool lean restait a ZERO jusqu'a intervention -- exactement l'incident du +# 2026-09-09 que ce fichier existe pour fermer (#16578). +MASTER_ENV="${COURSIA_MASTER_ENV:-/mnt/d/Dev/CoursIA/.secrets/master.env}" +REPO_DIR="${COURSIA_REPO_DIR:-/mnt/d/Dev/CoursIA}" ARG="${1:-2}" [ -r "$MASTER_ENV" ] || { echo "master.env illisible : $MASTER_ENV" >&2; exit 1; } diff --git a/scripts/ci/docker/linux-runner/persist/coursia-runner-start.sh b/scripts/ci/docker/linux-runner/persist/coursia-runner-start.sh index 6f0828f536..cec71d867b 100644 --- a/scripts/ci/docker/linux-runner/persist/coursia-runner-start.sh +++ b/scripts/ci/docker/linux-runner/persist/coursia-runner-start.sh @@ -6,12 +6,20 @@ # Design : # - le token admin GitHub ne vit JAMAIS dans la distro ni dans un argv : # il est relu a CHAQUE invocation depuis master.env cote Windows -# (/mnt/c/... via sed + tr -d '\r' -- CRLF tuerait la valeur) ; +# (sous /mnt/... via sed + tr -d '\r' -- CRLF tuerait la valeur) ; # - DOCKER_HOST epingle le socket docker-ce, pas le Docker Desktop ; # - l'etat superviseur (sentinel, logs slots) vit sous /var/lib/coursia-runner. set -euo pipefail -TOKEN_FILE="/mnt/c/dev/CoursIA/.secrets/master.env" +# Racine du depot. Le defaut a DEJA demenage : la migration du 2026-09-17 a +# deplace `C:\dev\CoursIA` -> `D:\Dev\CoursIA`, et ce wrapper pointait encore +# l'arborescence purgee. Consequence, mesuree (#16578) : `TOKEN_FILE` illisible +# -> `FATAL` AVANT tout demarrage de slot, donc le pool d'execution reste a ZERO +# jusqu'a intervention. Les deux surcharges sont celles de la jambe lean, pour +# que les deux lanceurs po-2024 se reglent de la meme facon. +REPO_DIR="${COURSIA_REPO_DIR:-/mnt/d/Dev/CoursIA}" + +TOKEN_FILE="${COURSIA_MASTER_ENV:-$REPO_DIR/.secrets/master.env}" TOKEN="$(sed -n 's/^GH_RUNNERS_ADMIN_TOKEN=//p' "$TOKEN_FILE" | tr -d '\r')" if [ -z "$TOKEN" ]; then echo "FATAL: GH_RUNNERS_ADMIN_TOKEN absent de $TOKEN_FILE" >&2 @@ -37,7 +45,7 @@ if ! docker info >/dev/null 2>&1; then exit 1 fi -SUPERVISE="/mnt/c/dev/CoursIA/scripts/ci/docker/linux-runner/supervise.sh" +SUPERVISE="$REPO_DIR/scripts/ci/docker/linux-runner/supervise.sh" mkdir -p "$COURSIA_RUNNER_STATE_DIR" # --- PURGE SENTINELLE PERIMEE (#15163) -----------------------------