-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MEG - VSR problèmes de redémarrage de service #246
Comments
J'ai déjà parlé de ce problème rencontré avec gunicorn. De mon côté je constate qu'il ne démarre pas en raison de git qui est encore en train d'écrire. Plusieurs restart permettent de démarrer le service prod. C'est documenté ici : |
Il manque peut être des options au script du service gunicorn pour un stop / restart propre. A voir selon la doc gunicorn (@spelhate si tu as une idée ?) |
Peut être qu'il faut stopper le process git avant de restart ? |
Sinon en adaptant le service avec ce type de paramétrage : [Unit]
Description=Your Daemon Name
StartLimitIntervalSec=60
StartLimitBurst=5
[Service]
ExecStart=/path/to/executable
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target |
On va regarder avec @pierrejego, merci pour les suggestions @spelhate |
Alors suite à un redémarrage infructueux, j'ai l'erreur ci-dessous. En redémarrant plusieurs fois, ça passe. Le log en question :
|
Un retour d'expérience sur ce sujet.
ça semble fonctionner. |
Je remarque qu'au démarrage via gunicorn, le service semble faire 2x la création de l'app Flask. Cela créé peut être un problème d'accès aux fichiers Git encore ouvert (accès concurrents)... |
J'ai facilement reproduis le comportement / erreurs via l'ajout de workers supplémentaires dans le fichier .service (daemon). Chaque worker rejoue la création du register et le repositionnement de chaque application sur la derniere version (git reset --hard). Si un worker est en cours de reset et qu'un autre tente de faire la même opération, alors le second passe sur un .lock du premier et génère une erreur. Pourtant d'un point de vue file-system, l'opération attendue sera bien faite par le worker qui a posé le lock. Soit on utilise qu'un worker soit on gère l'erreur. J'ai donc rajouté une gestion d'erreur pour le git lock. Le lock rencontré apparaîtra dans le fichier de log (voir #300) mviewerstudio.log. Suite à cette modification, je n'ai pas reproduis d'erreur au restart avc 3 workers. Exemple : Voici un extrait fichier de log qui montre un lock (donc une erreur générée par un worker) et également un succès (potentiellement d'un autre worker) : |
Depuis la PR #320 je n'ai pas eu de souci de redémarrage du service |
Je clos, PR merge |
J'ai des soucis pour redémarrer mon service. J'y arrive au bout d'un moment.
A spécifier...
The text was updated successfully, but these errors were encountered: