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
Related issues
Associated revisions
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
History
#1 Updated by Joël Cuissinat over 9 years ago
- File 01_toto.xml View added
#2 Updated by Emmanuel GARETTE over 9 years ago
- Assigned To set to Luc Bourdot
- Target version set to Eole 2.4-RC3
- % Done changed from 0 to 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 Updated by Daniel Dehennin over 9 years ago
Pour le reload de creoled il faut modifier la liste des fichiers à surveiller source:creole/server.py@7c5fa53#L61.
#4 Updated by Joël Cuissinat over 9 years ago
- Due date set to 04/04/2014
- Status changed from A étudier to Accepté
- Assigned To changed from Luc Bourdot to Emmanuel GARETTE
- % Done changed from 10 to 20
- redémarrage du service
creoled
en début de reconfigure - suppression du reload au niveau du client
#5 Updated by Daniel Dehennin over 9 years ago
- Assigned To changed from Emmanuel GARETTE to Daniel Dehennin
- Start date set to 03/26/2014
#6 Updated by Daniel Dehennin over 9 years ago
- Status changed from Accepté to Résolu
- % Done changed from 20 to 100
Appliqué par commit 528bdc127de3ffa0de4cbef50a73ced519a94687.
#7 Updated by Emmanuel GARETTE over 9 years ago
- Status changed from Résolu to À valider
- % Done changed from 100 to 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 Updated by Daniel Dehennin over 9 years ago
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 Updated by Emmanuel GARETTE over 9 years ago
- Status changed from À valider to Résolu
- % Done changed from 80 to 100
#10 Updated by Joël Cuissinat over 9 years ago
- Status changed from Résolu to À valider
- % Done changed from 100 to 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 Updated by Joël Cuissinat over 9 years ago
- Status changed from À valider to Résolu
- % Done changed from 80 to 100
Appliqué par commit b5757f796affa4931e10be17db3b91a94a8552e4.
#12 Updated by Emmanuel GARETTE over 9 years ago
- Status changed from Résolu to 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:~#