Projet

Général

Profil

Tâche #20410

Scénario #20347: EoleSSO être fonctionnel au démarrage des serveurs

Reproduire le problème de démarrage d'eole-sso

Ajouté par Joël Cuissinat il y a presque 7 ans. Mis à jour il y a presque 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
02/05/2017
Echéance:
% réalisé:

100%

Temps estimé:
4.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Des corrections ont été apportées lors de la dernière campagne mais cela ne semble pas suffisant #19364 ...

amonecole-boot.svg Voir (118 ko) Joël Cuissinat, 12/05/2017 15:40

Révisions associées

Révision c9c8502c (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

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

Révision 0fe8266f (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

Creoled requires python systemd binding

  • debian/control (Depends): Add python-systemd to python-creole
    package.

Ref: #20410

Révision f3184f9b (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

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

Révision a41142e0 (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

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 Schwartzmann supprimé

#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 commande service 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

  1. 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"):
    
  1. Redémarrer le serveur
  2. Une fois tous les services démarrés, exécuter la commande systemd-analyze plot > boot.svg
  3. Vérifier :
    1. Que le service creoled met beaucoup de temps à démarrer
    2. Que le service eole-sso est bien démarré après creoled

#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

#13 Mis à jour par Scrum Master il y a presque 7 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF