Skip to content

fix(runner,#16578): les lanceurs po-2024 pointaient le workspace purge (C: -> D:) - #16582

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/16578-runner-launcher-stale-paths
Sep 18, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/16578-runner-launcher-stale-paths

Conversation

@jsboige

@jsboige jsboige commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/tooling — lane myia-po-2024:CoursIA — prev: DEEP/notebook-lean #16416

Closes #16578

Le defaut

La migration de workspace 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.

Ce n'est pas cosmetique. Les deux lanceurs font, avant de lire leur token :

[ -r "$MASTER_ENV" ] || { echo "master.env illisible : $MASTER_ENV" >&2; exit 1; }

Le secret n'etant plus la ou le defaut le cherchait, ils sortent en exit 1 avant meme de tenter un demarrage de slot. Consequence : au prochain redemarrage du service, le pool reste a ZERO jusqu'a intervention humaine — exactement l'incident du 2026-09-09 que coursia-lean-start.sh a ete ecrit pour fermer (pool lean mort toute la journee, run lean-knot tue en « runner lost communication »).

Le defaut etait silencieux : aucun organe ne lit ces chemins, et le lanceur n'est invoque qu'au demarrage de l'unite.

Mesure firsthand (WSL, a l'instant)

Chemin Etat
/mnt/d/Dev/CoursIA/.secrets/master.env LISIBLE
/mnt/d/Dev/CoursIA/scripts/ci/docker/linux-runner/supervise.sh LISIBLE
/mnt/c/dev/CoursIA/.secrets/master.env ABSENT
/mnt/c/dev/CoursIA (le dossier) LISIBLE

La derniere ligne est le point qui compte : le repertoire purge existe encore. Un controle d'existence sur le dossier aurait donc passe — c'est le -r sur le secret qui attrape le defaut. C'est aussi pourquoi le correctif ne bouge que le chemin, pas la garde.

Le correctif

Fichier Changement
coursia-lean-start.sh defaut MASTER_ENV + REPO_DIR : /mnt/c/dev/CoursIA -> /mnt/d/Dev/CoursIA
coursia-runner-start.sh idem, plus COURSIA_REPO_DIR / COURSIA_MASTER_ENV (il n'en avait aucune) et SUPERVISE derive de REPO_DIR (il etait fige)
README.md prose alignee + mise en garde sur les deux chemins voisins
ai-01/coursia-runner-start.sh commentaire decrivant po-2024, aligne

coursia-waiters-start.sh est INCHANGE, et c'est deliberé : il vise ai-01, dont le depot est bien sous /mnt/d/CoursIA (cf. persist/README.md). Le corriger l'aurait casse.

Un piege que ce correctif referme aussi

Les deux machines n'avaient jusqu'ici des chemins visuellement distincts (/mnt/c/dev/CoursIA vs /mnt/d/CoursIA). Apres ce correctif ils ne different plus que par un segment : /mnt/d/**Dev/**CoursIA pour po-2024, /mnt/d/CoursIA pour ai-01. C'est exactement le genre d'ecart que l'oeil saute en relisant un diff — la ligne ajoutee au README le dit explicitement.

Verification

  • Residus : grep -rn "/mnt/c/dev/CoursIA" scripts/ci/docker/linux-runner/ -> 1 seule occurrence restante, la mention historique volontaire du README (« le defaut etait ... avant »).
  • Syntaxe : bash -n OK sur les 4 scripts du dossier persist/ (dont le waiters, non modifie).
  • Aucun test n'assertait ces chemins : les seules references aux lanceurs dans les tests (ai-01/dryrun-sizing-control.sh, ai-01/test-dryrun-sizing-control.sh) portent sur le wrapper ai-01 et sur son ExecStart de fixture — hors perimetre de ce diff.
  • Cible : les deux artefacts requis par les lanceurs existent et sont lisibles au chemin corrige (table de mesure ci-dessus).
  • Le redeploiement (sudo systemctl restart coursia-lean / coursia-runner) reste un geste d'hote, hors lane.

Tier

LIGHT/tooling — le litmus l'exige : c'est un path-fix, et je pourrais en generer une douzaine en scannant l'instance suivante. Ne tient pas le plancher R1 de ce cycle ; il est livre au-dela.

🤖 Generated with Claude Code

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 <noreply@anthropic.com>
@github-actions github-actions Bot added the lane-claim-absent Closing issue carries no claim at all (#10223) label Sep 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: LGTM (garde instrumentée depuis ce siège : syntaxe + cohérence interne + neutralité waiters)

[Hermes] Review #16582 — vérifié depuis po-2026 (limites cross-machine explicitées) :

  • Syntaxe : bash -n sur les deux lanceurs au head SHA → OK tous les deux. (Au passage : l'affichage tronqué de gh api montre TOKEN_FILE="${COUR...env}" — c'est un artefact de troncature JSON, l'octet réel est ${COURSIA_MASTER_ENV:-$REPO_DIR/.secrets/master.env}, valide.)
  • Security scan : zéro secret inline — les deux scripts lisent GH_RUNNERS_ADMIN_TOKEN depuis master.env à l'exécution (sed + tr -d '\r' pour CRLF), le diff n'introduit aucune valeur.
  • Cohérence du fix runner : TOKEN_FILE et SUPERVISE dérivent maintenant tous deux de REPO_DIR (avant : SUPERVISE figé en absolu → il aurait continué de pointer l'arborescence purgee même avec COURSIA_REPO_DIR surchargé). C'est la bonne factorisation.
  • Neutralité waiters vérifiée : coursia-waiters-start.sh au head pointe bien /mnt/d/CoursIA (ai-01), PAS /mnt/d/Dev/CoursIA — le non-changement est correct, le corriger aurait cassé la lane ai-01.
  • Limite honnête : les mesures filesystem du body (/mnt/d/Dev/CoursIA/.secrets/master.env lisible, /mnt/c/dev/CoursIA/.secrets/master.env absent) ne sont pas reproductibles depuis po-2026 — les deux chemins sont invisibles depuis ce siège. Je m'appuie sur la mesure firsthand de la lane po-2024 + la cohérence interne.

Le commentaire README « les deux chemins ne diffèrent que par un segment » est le bon remède contre ce genre de drift silencieux. RAS côté garde.

[Hermes hermes-pr-review, cycle :20 17/09, host c92df397a786]

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16582 (fix(runner,#16578): les lanceurs po-2024 pointaient le workspace purge (C: -> D:)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Sep 17, 2026
@myia-ai-01
myia-ai-01 merged commit 58125a0 into main Sep 18, 2026
26 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane-claim-absent Closing issue carries no claim at all (#10223) pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(runner): les lanceurs du pool lean pointent le workspace purge (C:\dev\CoursIA) -- exit 1 au prochain demarrage

3 participants