Projet

Général

Profil

Tâche #20778

Scénario #20630: Tests et qualification (23-25)

La restauration d'un module amon 2.6.2 a besoin d'un redémarrage de creoled

Ajouté par Gilles Grandgérard il y a presque 7 ans. Mis à jour il y a presque 7 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
18/04/2017
Echéance:
% réalisé:

100%

Temps estimé:
3.00 h
Temps passé:
Restant à faire (heures):
0.0

Description

Même problème que #19802 mais en 2.6.2


Demandes liées

Lié à Distribution EOLE - Scénario #19802: La restauration d'un module amon 2.6.1 a besoin d'un redémarrage de creoled Terminé (Sprint) 04/04/2017 14/04/2017

Révisions associées

Révision 960669be (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

Race condition between reloading the configuration and the values

The “lock.acquire()” is called after saving the actual configuration
in a local variable, this could result:

- in the code being blocked by another thread because of an “INOTIFY”
event

- then the global configuration is written with the old configuration

  • creole/server.py (CreoleServer.reload_eol): Do not use a local copy
    of the configuration before the “lock.acquire()”.

Révision ccdff647 (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

Fix reference before assignment

  • creole/server.py (CreoleServer.reload_eol): Use self.config since
    config is not already defined.

Révision 5495fe30 (diff)
Ajouté par Daniel Dehennin il y a presque 7 ans

Notify systemd under lock protection

This avoid the situation with a reloaded creoled and systemd waiting
for the reload to finish.

  • creole/server.py (CreoleServer.reload_config): Move “lock.acquire()”
    and “lock.release()” to protect systemd notifications.

Historique

#1 Mis à jour par Gilles Grandgérard il y a presque 7 ans

  • Lié à Scénario #19802: La restauration d'un module amon 2.6.1 a besoin d'un redémarrage de creoled ajouté

#3 Mis à jour par Joël Cuissinat il y a presque 7 ans

  • Temps estimé mis à 3.00 h
  • Restant à faire (heures) mis à 2.5

Le rechargement de creoled est bien demandé mais plante.
Extrait de /var/log/syslog correspondant à l'exécution de apt-eole install eole-bareos :

Jun 13 11:34:18 amon creoled[1623]: 127.0.0.1 - - [13/Jun/2017:11:34:18] "GET /get/creole?variable=mode_conteneur_actif HTTP/1.1" 200 32 "" "restkit/4.2.2" 
Jun 13 11:34:26 amon systemd[1]: Reloading.
Jun 13 11:34:26 amon systemd[1]: Started ACPI event daemon.
Jun 13 11:34:27 amon bareos-dbcheck: dbcheck ABORTING due to ERROR#012Unknown database type: XXX_REPLACE_WITH_DATABASE_DRIVER_XXX
Jun 13 11:34:27 amon bareos-dbcheck: BAREOS forced SEG FAULT to obtain traceback.
Jun 13 11:34:27 amon kernel: [ 2302.565331] show_signal_msg: 9 callbacks suppressed
Jun 13 11:34:27 amon kernel: [ 2302.565336] bareos-dbcheck[4558]: segfault at 0 ip 00007f208a906d4d sp 00007ffde456ae90 error 6 in libbareos-14.2.6.so[7f208a8d2000+5d000]
Jun 13 11:34:27 amon systemd[1]: Reloading.
Jun 13 11:34:27 amon systemd[1]: Started ACPI event daemon.
Jun 13 11:34:28 amon systemd[1]: Reloading.
Jun 13 11:34:28 amon systemd[1]: Started ACPI event daemon.
Jun 13 11:34:28 amon systemd[1]: Reloading.
Jun 13 11:34:28 amon systemd[1]: Started ACPI event daemon.
Jun 13 11:34:28 amon systemd[1]: Starting LSB: Bareos File Daemon...
Jun 13 11:34:28 amon systemd[1]: Started LSB: Bareos File Daemon.
Jun 13 11:34:28 amon systemd[1]: Reloading.
Jun 13 11:34:28 amon systemd[1]: Started ACPI event daemon.
Jun 13 11:34:29 amon systemd[1]: Reloading.
Jun 13 11:34:29 amon systemd[1]: Started ACPI event daemon.
Jun 13 11:34:31 amon creoled[1623]: creoled - Rechargement du fichier config.eol suite à l'évènement IN_MODIFY sur /etc/eole/extra/backuponce/config.eol
Jun 13 11:34:31 amon creoled[1623]: creoled - Impossible de charger la configuration Creole depuis le fichier config.eolImpossible de trouver le fichier /etc/eole/config.eol
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : _gen_crossed_hosts
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : _gen_hosts
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : get_etc_hosts
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/get_etc_hosts.py - déjà défini : stderr
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : calc_free_PE
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : check_free_space
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : enable_lv_creation
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : is_fs_type
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/partitioning_utils.py - déjà défini : is_lv_name
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_alias_interfaces
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_bonding_option
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_bridge_interface
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_mtu_option
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_physical_interface
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_pppoe_interface
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_unmanage_interface
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : _gen_vlan_interfaces
Jun 13 11:34:31 amon creoled[1623]: /usr/share/creole/funcs/master_network_interfaces.py - déjà défini : get_master_interfaces
Jun 13 11:34:31 amon creoled[1623]: 127.0.0.1 - - [13/Jun/2017:11:34:31] "GET /reload_config HTTP/1.1" 200 31 "" "restkit/4.2.2" 
Jun 13 11:34:31 amon creoled[1623]: creoled - Rechargement du fichier config.eol suite à l'évènement IN_CREATE sur /etc/eole/extra/bareos/config.eol
Jun 13 11:34:31 amon creoled[1623]: creoled - Impossible de charger la configuration Creole depuis le fichier config.eolImpossible de trouver le fichier /etc/eole/config.eol
Jun 13 11:34:31 amon systemd[1]: Stopping Eole flask server...
Jun 13 11:34:31 amon creoled[1623]: creoled - Rechargement du fichier config.eol suite à l'évènement IN_CREATE sur /etc/eole/extra/backupreport/config.eol
Jun 13 11:34:31 amon creoled[1623]: creoled - Impossible de charger la configuration Creole depuis le fichier config.eolImpossible de trouver le fichier /etc/eole/config.eol
Jun 13 11:34:32 amon systemd[1]: Stopped Eole flask server.
Jun 13 11:34:32 amon systemd[1]: Starting Eole flask server...
Jun 13 11:34:32 amon systemd[1]: eoleflask.service: PID file /run/eoleflask.pid not readable (yet?) after start: No such file or directory
Jun 13 11:34:32 amon systemd[1]: Started Eole flask server.

Si on exécute à nouveau CreoleGet --reload, cela fonctionne.

#4 Mis à jour par Daniel Dehennin il y a presque 7 ans

Les fichiers .eol extras sont créés car ils ont des auto_save, ce qui engendre un rechargement de creoled (#19519#note-5).

Je pense que la procédure de rechargement devrait prendre en compte la non présence de /etc/eole/config.eol afin de ne pas tenter de recharger la configuration sans fichier de configuration.

À moins qu’il n’y ait besoin d’accéder aux nouvelles valeurs extras stockées dans les nouveaux fichier ?

#5 Mis à jour par Scrum Master il y a presque 7 ans

  • Statut changé de Nouveau à En cours

#6 Mis à jour par Scrum Master il y a presque 7 ans

  • Description mis à jour (diff)
  • Assigné à mis à Daniel Dehennin

#7 Mis à jour par Daniel Dehennin il y a presque 7 ans

  • Projet changé de Distribution EOLE à creole

#8 Mis à jour par Daniel Dehennin il y a presque 7 ans

  • % réalisé changé de 0 à 100
  • Restant à faire (heures) changé de 2.5 à 0.25

#9 Mis à jour par Scrum Master il y a presque 7 ans

  • Projet changé de creole à Distribution EOLE
  • Statut changé de En cours à Résolu

#10 Mis à jour par Scrum Master il y a presque 7 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) changé de 0.25 à 0.0

Formats disponibles : Atom PDF