Project

General

Profile

Tâche #20410

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

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

Added by Joël Cuissinat over 2 years ago. Updated over 2 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
05/02/2017
Due date:
% Done:

100%

Estimated time:
4.00 h
Spent time:
Remaining (hours):
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 View (118 KB) Joël Cuissinat, 05/12/2017 03:40 PM

Associated revisions

Revision c9c8502c (diff)
Added by Daniel Dehennin over 2 years ago

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

Revision 0fe8266f (diff)
Added by Daniel Dehennin over 2 years ago

Creoled requires python systemd binding

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

Ref: #20410

Revision f3184f9b (diff)
Added by Daniel Dehennin over 2 years ago

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

Revision a41142e0 (diff)
Added by Daniel Dehennin over 2 years ago

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

History

#1 Updated by Joël Cuissinat over 2 years ago

  • Description updated (diff)

#2 Updated by Scrum Master over 2 years ago

  • Assigned To set to Gérald Schwartzmann

#3 Updated by Scrum Master over 2 years ago

  • Status changed from Nouveau to En cours

#4 Updated by Gérald Schwartzmann over 2 years ago

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 Updated by Gérald Schwartzmann over 2 years ago

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 Updated by Scrum Master over 2 years ago

  • Assigned To deleted (Gérald Schwartzmann)

#7 Updated by Joël Cuissinat over 2 years ago

  • Assigned To set to Joël Cuissinat

#8 Updated by Joël Cuissinat over 2 years ago

  • % Done changed from 0 to 20
  • Remaining (hours) changed from 4.0 to 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 Updated by Daniel Dehennin over 2 years ago

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 Updated by Daniel Dehennin over 2 years ago

  • % Done changed from 20 to 100
  • Remaining (hours) changed from 1.0 to 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 Updated by Joël Cuissinat over 2 years ago

  • Status changed from En cours to Résolu
  • Remaining (hours) changed from 0.25 to 0.0

Testé OK

#13 Updated by Scrum Master over 2 years ago

  • Status changed from Résolu to Fermé

Also available in: Atom PDF