Projet

Général

Profil

Evolution #7429

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

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
26/03/2014
Echéance:
04/04/2014
% réalisé:

100%

Temps estimé:
2.00 h
Temps passé:
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 Voir (418 octets) Joël Cuissinat, 17/02/2014 14:28


Demandes liées

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

Révisions associées

Révision 528bdc12 (diff)
Ajouté par Daniel Dehennin il y a environ 10 ans

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

Révision dd8815cf (diff)
Ajouté par Daniel Dehennin il y a environ 10 ans

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

Révision 2747bf87 (diff)
Ajouté par Daniel Dehennin il y a environ 10 ans

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

Révision b5757f79 (diff)
Ajouté par Joël Cuissinat il y a environ 10 ans

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

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

#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

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

Formats disponibles : Atom PDF