Project

General

Profile

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

Added by Fabrice Barconnière 11 months ago. Updated 10 months ago.

Status:
Terminé (Sprint)
Priority:
Normal
Category:
-
Start date:
10/14/2019
Due date:
10/31/2019
% Done:

100%

Estimated time:
(Total: 18.00 h)
Spent time:
(Total: 21.00 h)
Story points:
4.0
Remaining (hours):
0.00 hour
Velocity based estimate:
Release:
Release relationship:
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


Subtasks

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

History

#1 Updated by Fabrice Barconnière 11 months ago

  • Description updated (diff)
  • Story points changed from 3.0 to 4.0

#2 Updated by Joël Cuissinat 11 months ago

  • Due date set to 10/31/2019
  • Target version set to sprint 2019 42-44 Equipe MENSR
  • Start date set to 10/14/2019

#3 Updated by Fabrice Barconnière 11 months ago

  • Subject changed from Agent Zéphir RVP sur Shynx : fusionner l'agent État des tunnels et l'état des threads strongSwan to Agent Zéphir RVP sur Shynx : Les agents État des tunnels et État des threads strongSwan ne doivent pas être en erreur à tort
  • Description updated (diff)

#4 Updated by Fabrice Barconnière 11 months ago

  • Assigned To set to Fabrice Barconnière

#5 Updated by Fabrice Barconnière 10 months ago

  • Status changed from Nouveau to Terminé (Sprint)

#6 Updated by Joël Cuissinat 10 months ago

  • Release changed from EOLE 2.7.2 to EOLE 2.7.1.2

Also available in: Atom PDF