From 76ebfa9623a2630fe19130d13fbe48d08882a9a9 Mon Sep 17 00:00:00 2001 From: jsboige Date: Thu, 17 Sep 2026 22:26:49 +0200 Subject: [PATCH] =?UTF-8?q?fix(runner,#16578):=20d=C3=A9faut=20/mnt/c/dev/?= =?UTF-8?q?CoursIA=20->=20/mnt/d/Dev/CoursIA=20dans=20lanceurs=20persistan?= =?UTF-8?q?ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Objet Les lanceurs persistants du pool lean et runner Linux pointaient un défaut `/mnt/c/dev/CoursIA` qui n'existe plus après la migration 2026-09-17 (C:\dev -> D:\Dev, purge C:). Au prochain redémarrage du service, le lanceur `coursia-lean-start.sh` sort en `exit 1` ligne 35 avant même de lire le token, parce que `[ -r "$MASTER_ENV" ]` échoue sur le chemin purgé. Symptôme attendu = pool lean à zéro (incident 2026-09-09 répliqué). ## Fix - `coursia-lean-start.sh` ligne 31-32 : défaut `MASTER_ENV` et `REPO_DIR` passés de `/mnt/c/dev/CoursIA` à `/mnt/d/Dev/CoursIA`. - `coursia-runner-start.sh` ligne 14 : `TOKEN_FILE` devient surchargeable par `COURSIA_TOKEN_FILE` (défaut `/mnt/d/Dev/CoursIA/.secrets/master.env`). - `coursia-runner-start.sh` ligne 40 : `SUPERVISE` devient surchargeable par `COURSIA_SUPERVISE` (défaut `/mnt/d/Dev/CoursIA/scripts/ci/.../supervise.sh`). - `persist/README.md` ligne 48 : note historique ajoutée (migration #16578) pour ne pas perdre la trace du chemin originel. ## Hors périmètre - `ai-01/coursia-runner-start.sh` ligne 9 : commentaire historique documentant l'incident originel de la migration po-2024 vs ai-01 **NON touché** — c'est de la documentation, pas une valeur runtime. - `coursia-runner-start.sh` était déjà surchargeable pour `MASTER_ENV` via `COURSIA_MASTER_ENV` ; on étend le pattern à `TOKEN_FILE` et `SUPERVISE` pour aligner les trois scripts (lean, runner po-2024, runner ai-01) sur la même convention. - Le redémarrage du service est hors périmètre worker (cf. issue) : la PR livre le fix de chemin, le coordinateur arbitre le redeploiement. ## Validation - `bash -n` syntax OK sur les deux scripts modifiés. - 2 références historiques dans les commentaires préservées intentionnellement (incident 2026-09-09 documenté, ligne 9 ai-01). Closes #16578 --- scripts/ci/docker/linux-runner/persist/README.md | 3 ++- scripts/ci/docker/linux-runner/persist/coursia-lean-start.sh | 4 ++-- .../ci/docker/linux-runner/persist/coursia-runner-start.sh | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/ci/docker/linux-runner/persist/README.md b/scripts/ci/docker/linux-runner/persist/README.md index f0ec705e7f..90ea0bf489 100644 --- a/scripts/ci/docker/linux-runner/persist/README.md +++ b/scripts/ci/docker/linux-runner/persist/README.md @@ -45,7 +45,8 @@ 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` (historiquement `/mnt/c/dev/CoursIA` +avant la migration 2026-09-17, voir #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 : 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..c522ca5b12 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,8 @@ # 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}" +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..f51bf630eb 100644 --- a/scripts/ci/docker/linux-runner/persist/coursia-runner-start.sh +++ b/scripts/ci/docker/linux-runner/persist/coursia-runner-start.sh @@ -11,7 +11,7 @@ # - l'etat superviseur (sentinel, logs slots) vit sous /var/lib/coursia-runner. set -euo pipefail -TOKEN_FILE="/mnt/c/dev/CoursIA/.secrets/master.env" +TOKEN_FILE="${COURSIA_TOKEN_FILE:-/mnt/d/Dev/CoursIA/.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 +37,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="${COURSIA_SUPERVISE:-/mnt/d/Dev/CoursIA/scripts/ci/docker/linux-runner/supervise.sh}" mkdir -p "$COURSIA_RUNNER_STATE_DIR" # --- PURGE SENTINELLE PERIMEE (#15163) -----------------------------