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
100%
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.
- 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
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