Project

General

Profile

Evolution #7429

Les dictionnaires extras ne sont pas (re)chargés automatiquement

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

Status:
Fermé
Priority:
Normal
Assigned To:
Category:
-
Start date:
03/26/2014
Due date:
04/04/2014
% Done:

100%

Estimated time:
2.00 h
Spent time:
Distribution:
EOLE 2.4

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

01_toto.xml View (418 Bytes) Joël Cuissinat, 02/17/2014 02:28 PM


Related issues

Related to creole - Anomalie #7293: Le rechargement dynamique des fichiers extras ne fonctionne pas Fermé 02/03/2014 02/21/2014
Related to creole - Anomalie #7714: Pas de chargement de creoled post migration 2.3 vers 2.4 Fermé 03/26/2014 04/04/2014

Associated revisions

Revision 528bdc12 (diff)
Added by Daniel Dehennin over 9 years ago

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

Revision dd8815cf (diff)
Added by Daniel Dehennin over 9 years ago

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

Revision 2747bf87 (diff)
Added by Daniel Dehennin over 9 years ago

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

Revision b5757f79 (diff)
Added by Joël Cuissinat over 9 years ago

Test du lock d'instance avant le restart creoled

Fixes #7429 @30m

History

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

#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
Décision prise le 25/03/2013 :
  • 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

#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

#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:~# 

Also available in: Atom PDF