Scénario #35032
Zephir-agent ne remonte plus les informations au Zéphir si bareos est arrêté
100%
Description
Le service bareos-dir n'a pas démarré avec une erreur bizarre :
nov. 20 12:03:06 amon bareos-dir[11433]: Check file /var/lib/bareos/bareos-dir.9101.pid nov. 20 12:03:06 amon systemd[1]: bareos-director.service: New main PID 1600 does not belong to service, and PID file is not owned by root. Refusing.
L'agent Zéphir correspondant fait des erreurs :
nov. 20 12:28:08 amon zephiragents[11640]: 2022-11-20T12:28:08+0100 [-] got stderr: b'socket error: [Errno 111] Connection refused\n' nov. 20 12:28:08 amon zephiragents[11640]: [-] got stderr: b'socket error: [Errno 111] Connection refused\n'
Dans ce cas, il n'y a plus de remontée au Zéphir (bizarrement).
Sous-tâches
Demandes liées
Historique
#1 Mis à jour par Joël Cuissinat il y a plus d'un an
- Tâche parente mis à #35222
#2 Mis à jour par Joël Cuissinat il y a environ un an
- Dupliqué par Demande #35317: Si bareos-dir ne redémarre pas, le contact avec Zéphir ne se fait plus ajouté
#3 Mis à jour par Joël Cuissinat il y a environ un an
- Tâche parente
#35222supprimé
#4 Mis à jour par Joël Cuissinat il y a environ un an
- Tracker changé de Tâche à Scénario
- Début
20/11/2022supprimé - Release mis à Carnet de produit (Cadoles)
- Points de scénarios mis à 1.0
#5 Mis à jour par Laurent Gourvenec il y a environ un an
- Statut changé de Nouveau à En cours
- Assigné à mis à Laurent Gourvenec
#6 Mis à jour par Joël Cuissinat il y a environ un an
- Echéance mis à 01/01/2024
- Version cible mis à Carnet Cadoles
- Début mis à 01/10/2022
#7 Mis à jour par Laurent Gourvenec il y a environ un an
Ce qui se passe :
On appelle measure() qui renvoit un Defer avec 1 cb ok et cb d'erreur.
On ajoute 1cb ok et 1 cb d'erreur à ce Defer (dans la fonction scheduled_measure)
Le Defer s'exécute, fini en erreur
La première callback d'erreur est appelée et ne renvoi rien (= renvoi None)
La deuxième cb ok est alors appelée puisque None n'est pas une erreur. Cette deuxième cb ok est la fonction save_measure() qui va enregistrer un objet Measure et non None directement.
Plus tard, lors de l'écriture des résultats, last_measure vaudra le dernier objet Measure créé (un timestamp + None, grosso modo)
Solution :
Gérer l'erreur dans la callback measure_error plutôt que de ne rien retourner.
La deuxième callback d'erreur est là pour gérer les éventuels bugs dans le code de la première cb ok ou de la première cb d'erreur.
#8 Mis à jour par Joël Cuissinat il y a 12 mois
- Statut changé de En cours à Terminé (Sprint)
- Release changé de Carnet de produit (Cadoles) à EOLE 2.7.2
#9 Mis à jour par Joël Cuissinat il y a 12 mois
- Version cible changé de Carnet Cadoles à Livraison Cadoles 31/05/2023