Dans le cas d'un worker gunicorn qui se termine suite à un plantage, son SlurmLauncher se terminera également et le worker qui le remplace ne pourra pas s'initier avec le slurm_workspace du worker tué précédemment (car il y a un filelock qui n'est nettoyé qu' au redémarrage du service complet).
Une méthode devrait être ajoutée pour récupérer tout travail de lancement manquant et l'ajouter à un worker SlurmLauncher en cours d'exécution.
RAPPEL : le lancement des workers par gunicorn se fait au niveau du Docker avec le script scripts/start.sh.
Si un worker plante, gunicorn en lance un nouveau.
Voir antarest/launcher/adapters/slurm_launcher/slurm_launcher.py : la fonction _init_workspace va créer de nouveaux dossiers s'il y a un .lock ou en utiliser un existant.
Les dossiers de travail des workers se trouvent dans le répertoire /applis/antares/data/slurm_workspace/.
Il y a toujours le même nombre de workers (il y en a par exemple 9 en recette).
Au démarrage d'Antares Web, chaque worker recherche un sous-dossier de travail dans slurm_workspace/ et le verouille s'il n'y a pas déjà de .lock.
En cas de plantage, gunicorn relance le worker planté. Le nouveau worker n'utilisera pas le sous-dossier du worker planté car il reste verrouillé. On perd le travaille en cours, car il y a nécessairement un traitement en cours sur CALIN.
Cette issue pourrait être résolue dans #741. Il n'est donc pas nécessaire de la développer.
Dans le cas d'un worker gunicorn qui se termine suite à un plantage, son
SlurmLauncher
se terminera également et le worker qui le remplace ne pourra pas s'initier avec le slurm_workspace du worker tué précédemment (car il y a un filelock qui n'est nettoyé qu' au redémarrage du service complet).Une méthode devrait être ajoutée pour récupérer tout travail de lancement manquant et l'ajouter à un worker
SlurmLauncher
en cours d'exécution.Voir
antarest/launcher/adapters/slurm_launcher/slurm_launcher.py
: la fonction_init_workspace
va créer de nouveaux dossiers s'il y a un.lock
ou en utiliser un existant.Les dossiers de travail des workers se trouvent dans le répertoire
/applis/antares/data/slurm_workspace/
.Il y a toujours le même nombre de workers (il y en a par exemple 9 en recette).
Au démarrage d'Antares Web, chaque worker recherche un sous-dossier de travail dans
slurm_workspace/
et le verouille s'il n'y a pas déjà de.lock
.En cas de plantage,
gunicorn
relance le worker planté. Le nouveau worker n'utilisera pas le sous-dossier du worker planté car il reste verrouillé. On perd le travaille en cours, car il y a nécessairement un traitement en cours sur CALIN.Cette issue pourrait être résolue dans #741. Il n'est donc pas nécessaire de la développer.