Tâche #20410
Scénario #20347: EoleSSO être fonctionnel au démarrage des serveurs
Reproduire le problème de démarrage d'eole-sso
Description
Des corrections ont été apportées lors de la dernière campagne mais cela ne semble pas suffisant #19364 ...
Révisions associées
Creoled is considered started before being ready
As the systemd service is of type simple, the daemon is
considered started as soon as it's running.
To avoid dependency problem we need to switch to notify and make sure
everything is running and OK before serving connections.
- creole/server.py: Use systemd python binding.
(CreoleServer.__init__): Take a new argument to know if the web
server is running and pass it to “CreoleServer.reload_config()”.
(CreoleServer.reload_config): If the web server is running notify
systemd about the state of the server.
(CreoleServer.reload_eol): Notify systemd about the reload/ready
states.
(CreoleDaemon.run): Load “CreoleServer()” with proper parameter
since the web server is not yet running.
Notify systemd after Cherrypy engine start.
Ref: #20410
Creoled requires python systemd binding
- debian/control (Depends): Add python-systemd to python-creole
package.
Ref: #20410
Creoled requires python systemd binding
- debian/control (Depends): Add python-systemd to python-creole
package.
Cherry pick from 0fe8266f478b875bcc947037475b27f5b8253bbe for 2.6.0
Ref: #20410
Creoled requires python systemd binding
- debian/control (Depends): Add python-systemd to python-creole
package.
Cherry-pick from 0fe8266f478b875bcc947037475b27f5b8253bbe for 2.6.2
Ref: #20410
Historique
#1 Mis à jour par Joël Cuissinat il y a presque 7 ans
- Description mis à jour (diff)
#2 Mis à jour par Scrum Master il y a presque 7 ans
- Assigné à mis à Gérald Schwartzmann
#3 Mis à jour par Scrum Master il y a presque 7 ans
- Statut changé de Nouveau à En cours
#4 Mis à jour par Gérald Schwartzmann il y a presque 7 ans
Déploiement d'une VM etb3.amonecole-2.6.1rc2-instance-AvecImportSconet
root@amonecole:~# apt-cache policy eole-sso eole-sso: Installé : 2.6.1-9
vim /etc/systemd/system/multi-user.target.wants/eole-sso.service
correction présente
[Unit] Description=Eole Single Sign On server After=local-fs.target syslog.target network.target remote-fs.target creoled.service ConditionPathExists=/etc/eole/config.eol
Je ne reproduit pas le dysfonctionnement, le test à l'origine de la demande n'est plus mentionner ici.
#5 Mis à jour par Gérald Schwartzmann il y a presque 7 ans
Nouveau test avec etb3.amonecole-2.6.1rc2-Daily
root@amonecole:~# /root/mount.eole-ci-tests root@amonecole:~# cp /mnt/eole-ci-tests/configuration/etb3.amonecole/default-2.6.1/etc/eole/config.eol /etc/eole/config.eol root@amonecole:~# instance root@amonecole:~# diagnose root@amonecole:~# reboot root@amonecole:~# diagnose
#6 Mis à jour par Scrum Master il y a presque 7 ans
- Assigné à
Gérald Schwartzmannsupprimé
#7 Mis à jour par Joël Cuissinat il y a presque 7 ans
- Assigné à mis à Joël Cuissinat
#8 Mis à jour par Joël Cuissinat il y a presque 7 ans
- % réalisé changé de 0 à 20
- Restant à faire (heures) changé de 4.0 à 1.0
Problème reproduit après plusieurs redémarrages.
La sortie de systemd-analyze plot
montre que eole-sso démarre bien après creoled mais s'arrête peu de temps après...
La sortie de la commande service eole-sso status
est explicite :
mai 12 10:12:35 amonecole systemd[1]: Started Eole Single Sign On server. mai 12 10:19:10 amonecole eole-sso[1466]: Erreur lors de l'accès aux données de configuration Creole : mai 12 10:19:10 amonecole eole-sso[1466]: Erreur HTTP : socket.error: [Errno 111] ECONNREFUSED mai 12 10:19:10 amonecole eole-sso[1466]: Veuillez vous référer au journal d'événement de creoled (/var/log/rsyslog/local/creoled/creoled.info.log) pour avoir plus d'informations mai 12 10:19:10 amonecole eole-sso[1466]: et redémarrer le service avec la commande 'service creoled start'
#9 Mis à jour par Daniel Dehennin il y a presque 7 ans
Joël Cuissinat a écrit :
Problème reproduit après plusieurs redémarrages.
La sortie de
systemd-analyze plot
montre que eole-sso démarre bien après creoled mais s'arrête peu de temps après...
La sortie de la commandeservice eole-sso status
est explicite :
[...]
J’ai une branche où je passe creoled
du mode simple
à notify
.
En ajoutant une temporisation de 30 secondes dans le démarrage de cherrypy je peux reproduire le problème à tous les coups.
#10 Mis à jour par Daniel Dehennin il y a presque 7 ans
- % réalisé changé de 20 à 100
- Restant à faire (heures) changé de 1.0 à 0.25
Pour valider¶
- Appliquer le patch suivant pour introduire une temporisation :
--- /usr/lib/python2.7/dist-packages/creole/server.py.orig 2017-05-12 14:37:44.033688490 +0200 +++ /usr/lib/python2.7/dist-packages/creole/server.py 2017-05-12 14:38:11.809671178 +0200 @@ -570,6 +570,9 @@ # Do not let him tell systemd otherwise server = CreoleServer(running=False) + from time import sleep + sleep(30) + inotify_handler = CreoleInotifyHandler(server=server) if hasattr(engine, "signal_handler"):
- Redémarrer le serveur
- Une fois tous les services démarrés, exécuter la commande
systemd-analyze plot > boot.svg
- Vérifier :
- Que le service
creoled
met beaucoup de temps à démarrer - Que le service
eole-sso
est bien démarré aprèscreoled
- Que le service
#11 Mis à jour par Joël Cuissinat il y a presque 7 ans
- Statut changé de En cours à Résolu
- Restant à faire (heures) changé de 0.25 à 0.0
Testé OK
#12 Mis à jour par Joël Cuissinat il y a presque 7 ans
- Fichier amonecole-boot.svg Voir ajouté
#13 Mis à jour par Scrum Master il y a presque 7 ans
- Statut changé de Résolu à Fermé