Projet

Général

Profil

Scénario #29132

Agent Zéphir RVP sur Shynx : Les agents État des tunnels et État des threads strongSwan ne doivent pas être en erreur à tort

Ajouté par Fabrice Barconnière il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Terminé (Sprint)
Priorité:
Normal
Catégorie:
-
Début:
14/10/2019
Echéance:
31/10/2019
% réalisé:

100%

Temps estimé:
(Total: 18.00 h)
Temps passé:
(Total: 21.00 h)
Points de scénarios:
4.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

À corriger à partir de 2.6.2.

Lorsqu'un grand nombre de tunnels est configuré dans strongSwan, l'agent État des threads sur Sphynx tombe en erreur (Moins de 2 threads strongSwan disponibles).
Ceci est dû au fait que l'agent État des tunnels lance une première commande ipsec statusall.
Lorsque l'agent État des threads lance également cette commande, la première n'est pas terminée et on se retrouve avec des process stroke ce qui bloque la deuxième commande.

Conséquences :
  • L'agent État des tunnels interprète cette situation (à tort) avec l'erreur : plus de 25% de tunnels en erreur
    • devrait indiquer un Warning : Mesure non disponible
  • L'agent État des threads interprète cette situation (à tort) avec l'erreur : Moins de 2 threads strongSwan disponibles
    • devrait indiquer un Warning : Mesure non disponible

Une seule commande ipsec statusall sera exécutée pour les mesures, mais on ne sera pas à l’abri de cette situation. Le fonctionnement normal de strongSwan renouvelle régulièrement les connexions. Des process stroke pourront donc être lancés lors de la mesure par l'agent Zéphir, ce qui ne doit pas être interprété comme une erreur.

De plus, cela provoque un traceback :

2019-10-13T06:48:18.458142+02:00 sphynx.ac-test.fr zephiragents[17420]: #011Traceback (most recent call last):
2019-10-13T06:48:18.458238+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/twisted/internet/_baseprocess.py", line 64, in maybeCallProcessEnded
2019-10-13T06:48:18.458335+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    proto.processEnded(Failure(reason))
2019-10-13T06:48:18.458430+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/twisted/internet/utils.py", line 163, in processEnded
2019-10-13T06:48:18.458581+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    self.deferred.callback((out, err, code))
2019-10-13T06:48:18.458679+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 459, in callback
2019-10-13T06:48:18.458777+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    self._startRunCallbacks(result)
2019-10-13T06:48:18.458872+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 567, in _startRunCallbacks
2019-10-13T06:48:18.458996+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    self._runCallbacks()
2019-10-13T06:48:18.459098+02:00 sphynx.ac-test.fr zephiragents[17420]: #011--- <exception caught here> ---
2019-10-13T06:48:18.459194+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 653, in _runCallbacks
2019-10-13T06:48:18.459292+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    current.result = callback(current.result, *args, **kw)
2019-10-13T06:48:18.459389+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/zephir/monitor/agentmanager/agent.py", line 341, in <lambda>
2019-10-13T06:48:18.459491+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    lambda m: self.save_measure(Measure(now, m)),
2019-10-13T06:48:18.459587+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/zephir/monitor/agentmanager/agent.py", line 601, in save_measure
2019-10-13T06:48:18.459685+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    self.rrd.update(rrd_values, measure.get_date())
2019-10-13T06:48:18.459781+02:00 sphynx.ac-test.fr zephiragents[17420]: #011  File "/usr/lib/python2.7/dist-packages/zephir/monitor/agentmanager/rrd.py", line 119, in update
2019-10-13T06:48:18.459896+02:00 sphynx.ac-test.fr zephiragents[17420]: #011    except rrdtool.error, e:
2019-10-13T06:48:18.459995+02:00 sphynx.ac-test.fr zephiragents[17420]: #011exceptions.AttributeError: 'module' object has no attribute 'error'

Pour reproduire cette situation, j'ai créé un script stroke.sh que j'exécute en background :

#!/bin/bash

while [ 1 -eq 1 ]
do
    sleep 1
done


Sous-tâches

Tâche #29157: Agent Threads : utiliser le fichier /tmp/tunnels_status.txt comme source de mesuresFerméFabrice Barconnière

Tâche #29159: L'agent rvp pour Sphynx ne doit pas indiquer à tort des tunnels en erreurFerméFabrice Barconnière

Tâche #29162: L'agent rvp sur Amon tombe également en erreur à tort dans cette situationFerméFabrice Barconnière

Historique

#1 Mis à jour par Fabrice Barconnière il y a plus de 4 ans

  • Description mis à jour (diff)
  • Points de scénarios changé de 3.0 à 4.0

#2 Mis à jour par Joël Cuissinat il y a plus de 4 ans

  • Echéance mis à 31/10/2019
  • Version cible mis à sprint 2019 42-44 Equipe MENSR
  • Début mis à 14/10/2019

#3 Mis à jour par Fabrice Barconnière il y a plus de 4 ans

  • Sujet changé de Agent Zéphir RVP sur Shynx : fusionner l'agent État des tunnels et l'état des threads strongSwan à Agent Zéphir RVP sur Shynx : Les agents État des tunnels et État des threads strongSwan ne doivent pas être en erreur à tort
  • Description mis à jour (diff)

#4 Mis à jour par Fabrice Barconnière il y a plus de 4 ans

  • Assigné à mis à Fabrice Barconnière

#5 Mis à jour par Fabrice Barconnière il y a plus de 4 ans

  • Statut changé de Nouveau à Terminé (Sprint)

#6 Mis à jour par Joël Cuissinat il y a plus de 4 ans

  • Release changé de EOLE 2.7.2 à EOLE 2.7.1.2

Formats disponibles : Atom PDF