Evolution #7429
Les dictionnaires extras ne sont pas (re)chargés automatiquement
Description
Je ne sais pas quel impact cela peut avoir sur un serveur en production mais si, par exemple on ajoute un nouveau dictionnaire "schedule", celui-ci ne sera pris en compte qu'au prochain redémarrage de creoled.
Exemple, en copiant le dictionnaire fourni en PJ dans /usr/share/eole/creole/extra/schedule :
root@scribe:~# CreoleGet schedule.toto.description root - Option fichier inconnue pour l'OptionDescription schedule root@scribe:/usr/share/eole/creole/extra/schedule# /etc/init.d/creoled restart * Restarting Creole daemon creoled waiting for pid 25486 to die giving up on pid 25486 with kill -0; trying -9 root@scribe:~# CreoleGet schedule.toto.description Schedule de test
Demandes liées
Révisions associées
Instance/reconfigure avec d’anciennes valeurs
À l’heure actuelle, il est possible que l’instance ou le reconfigure se
fasse avec de mauvaises valeurs car « creoled » conserve les valeurs
déjà présente si un rechargement de la configuration échoue.
Cela n’est pas acceptable dans le cas d’instance et reconfigure, la
procédure soit s’arrêter si quelque chose ne vas pas.
- creole/reconfigure.py (prepare): Redémarrage de « creoled ».
Fixes: #7429 @45m
Ne pas démarrer « creoled » dans CreoleClient
Le démarrage de « creoled » par les appels « CreoleClient » peut
entraîner le lancement de plusieurs tentative de démarrage du daemon,
les faisant tous échouer.
Si « creoled » ne fonctionne pas c’est qu’il y a un problème
suffisamment grave pour ne pas en ajouter une couche.
- creole/client.py (CreoleClient._request): Ne pas démarrer « creoled »
en cas d’échec.
Ref: #7429 @15m
Dépendance « pyeole » pour redémarrer « creoled »
- debian/control (Depends): Il faut pyeole 2.4.0-116 pour pouvoir
démarrer « creoled » par « pyeole.service.unmanaged_service() ».
Ref: #7429
Test du lock d'instance avant le restart creoled
Fixes #7429 @30m
Historique
#1 Mis à jour par Joël Cuissinat il y a environ 10 ans
- Fichier 01_toto.xml Voir ajouté
#2 Mis à jour par Emmanuel GARETTE il y a environ 10 ans
- Assigné à mis à Luc Bourdot
- Version cible mis à Eole 2.4-RC3
- % réalisé changé de 0 à 10
Corrigé pour le cas exposé ici, mais le fonctionne n'est pas satisfaisant.
Si je supprime le fichier, creoled ne redémarre pas. A priori ca ne fonctionne pas non plus pour les fonctions personnalisées.
Il existe surement d'autres cas problématiques.
Pour l'utilisateur la seule solution pour avoir un serveur fonctionnel c'est le redémarrage de la machine.
Je ne trouve pas ce comportement satisfaisant.
Pour moi il faudrait que "reconfigure" redémarre le service creoled.
#3 Mis à jour par Daniel Dehennin il y a environ 10 ans
Pour le reload de creoled il faut modifier la liste des fichiers à surveiller source:creole/server.py@7c5fa53#L61.
#4 Mis à jour par Joël Cuissinat il y a environ 10 ans
- Echéance mis à 04/04/2014
- Statut changé de A étudier à Accepté
- Assigné à changé de Luc Bourdot à Emmanuel GARETTE
- % réalisé changé de 10 à 20
- redémarrage du service
creoled
en début de reconfigure - suppression du reload au niveau du client
#5 Mis à jour par Daniel Dehennin il y a environ 10 ans
- Assigné à changé de Emmanuel GARETTE à Daniel Dehennin
- Début mis à 26/03/2014
#6 Mis à jour par Daniel Dehennin il y a environ 10 ans
- Statut changé de Accepté à Résolu
- % réalisé changé de 20 à 100
Appliqué par commit 528bdc127de3ffa0de4cbef50a73ced519a94687.
#7 Mis à jour par Emmanuel GARETTE il y a environ 10 ans
- Statut changé de Résolu à À valider
- % réalisé changé de 100 à 80
Le redémarrage de creoled se fait avant le test du lock 'instance'. Si on lance un reconfigure sans avoir instancié, il faut attendre inutilement le redémarrage de creoled.
#8 Mis à jour par Daniel Dehennin il y a environ 10 ans
Emmanuel GARETTE a écrit :
Le redémarrage de creoled se fait avant le test du lock 'instance'. Si on lance un reconfigure sans avoir instancié, il faut attendre inutilement le redémarrage de creoled.
Le redémarrage de creoled
se fait avant le test si creoled
fonctionne (source:creole/reconfigure.py@9ca939e#L199).
Le test du lock instance
se fait en faisant un appel CreoleCLient
(source:creole/reconfigure.py@9ca939e#L219).
Si l’instance se passe correctement mais que creoled
ne recharge pas correctement ou plante, le prochain reconfigure
pourrait ne pas fonctionner.
#9 Mis à jour par Emmanuel GARETTE il y a environ 10 ans
- Statut changé de À valider à Résolu
- % réalisé changé de 80 à 100
#10 Mis à jour par Joël Cuissinat il y a environ 10 ans
- Statut changé de Résolu à À valider
- % réalisé changé de 100 à 80
Dans instance on doit pouvoir se permettre de remplacer l'appel à creole client par soit isfile(INSTANCE_LOCKFILE)
soit eosfunc.is_instanciate()
...
Je m'interroge au passage sur l'utilité réelle de la variable module_instancie ?
#11 Mis à jour par Joël Cuissinat il y a environ 10 ans
- Statut changé de À valider à Résolu
- % réalisé changé de 80 à 100
Appliqué par commit b5757f796affa4931e10be17db3b91a94a8552e4.
#12 Mis à jour par Emmanuel GARETTE il y a presque 10 ans
- Statut changé de Résolu à Fermé
OK :
root@amon:~# wget http://dev-eole.ac-dijon.fr/attachments/download/826/01_toto.xml --2014-04-15 09:00:49-- http://dev-eole.ac-dijon.fr/attachments/download/826/01_toto.xml Résolution de dev-eole.ac-dijon.fr (dev-eole.ac-dijon.fr)... 194.167.18.22 Connexion vers dev-eole.ac-dijon.fr (dev-eole.ac-dijon.fr)|194.167.18.22|:80... connecté. requête HTTP transmise, en attente de la réponse... 200 OK Taille : non spécifié [text/xml] Enregistre : «01_toto.xml» [ <=> ] 418 --.-K/s ds 0s 2014-04-15 09:00:49 (17,8 MB/s) - «01_toto.xml» enregistré [418] root@amon:~# mv 01_toto.xml /usr/share/eole/creole/extra/schedule root@amon:~# CreoleGet schedule.toto.description Schedule de test root@amon:~#