Projet

Général

Profil

Tâche #20063

Scénario #19810: Traitement express MEN (13-15)

Le diagnose 152-rvp ne rend pas la main avec >600 tunnels

Ajouté par Olivier FEBWIN il y a presque 7 ans. Mis à jour il y a plus de 4 ans.

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

100%

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

Description

L'utilisation de Popen.wait() bloque le diagnose.

Avec l'utilisation de Popen.communicate(), la commande rend bien la main rapidement.

root@sphynx25-agriates:~# python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> process = subprocess.Popen(['ipsec', 'statusall'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)
>>> statusall_err, ret = process.communicate()
>>>

Il faudra tester le code retour avec Popen.poll() dans une boucle (pas infinie).
Un truc du style :

process = subprocess.Popen(['ipsec', 'statusall'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)
i = 0
ret = process.poll()
while ret is None and i < 20 :
    time.sleep(0.5)
    ret = process.poll()
    i+=1

Révisions associées

Révision 168e8bce (diff)
Ajouté par Fabrice Barconnière il y a presque 7 ans

Popen.wait() bloquait en cas d'OUTPUT important

ref #20063

Révision 43f250f8 (diff)
Ajouté par Fabrice Barconnière il y a presque 7 ans

La boucle avec process.poll() a le même effet que process.wait()

process.communicate() suffit et l'exécution est rapide

ref #20063

Historique

#1 Mis à jour par Fabrice Barconnière il y a presque 7 ans

  • Tracker changé de Demande à Tâche
  • Sujet changé de Diagnose ne rend pas la main avec >600 tunnels à Le diagnose 152-rvp ne rend pas la main avec >600 tunnels
  • Description mis à jour (diff)
  • Temps estimé mis à 3.00 h
  • Tâche parente mis à #19810
  • Restant à faire (heures) mis à 3.0

#2 Mis à jour par Fabrice Barconnière il y a presque 7 ans

  • Projet changé de Sphynx à Distribution EOLE
  • Statut changé de Nouveau à En cours

#3 Mis à jour par Fabrice Barconnière il y a presque 7 ans

  • Assigné à mis à Fabrice Barconnière

#4 Mis à jour par Fabrice Barconnière il y a presque 7 ans

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

Un paquet candidat eole-vpn 2.5.2-13 est disponible sur test-eole.ac-dijon.fr
Est-il possible de faire un retour pour indiquer si le problème est résolu ?

Installation du paquet :

root@sphynx:~# Query-auto -C -S test-eole.ac-dijon.fr
root@sphynx:~# apt-eole install eole-vpn
root@sphynx:~# Query-Auto

Merci

#5 Mis à jour par Fabrice Barconnière il y a presque 7 ans

  • Statut changé de En cours à Résolu

#6 Mis à jour par Olivier FEBWIN il y a presque 7 ans

Je peux le faire sans problème sur un Sphynx en prod ?

root@sphynx25-agriates:~# Query-Auto -C -S test-eole.ac-dijon.fr
Mise à jour le mercredi 05 avril 2017 12:28:26
*** sphynx 2.5.2 (0800069R) ***

Maj-Auto - (VERSION CANDIDATE) - Augmenter le niveau de mise à jour peut empêcher de revenir au niveau de mise à jour stable.
Voulez-vous continuer ? [oui/non]
[non] :

#7 Mis à jour par Fabrice Barconnière il y a presque 7 ans

Après le Query-Auto, si tu n'installes que le paquet eole-vpn, il n'y aura que la correction du diagnose, donc pas d'impact sur le reste.
Pas besoin de reconfigure. Il suffit juste de relancer diagnose pour vérifier si ça ne bloque plus.

#8 Mis à jour par Olivier FEBWIN il y a presque 7 ans

Oui c'est bien ce que je me disais, mais j'ai préféré demander car le message d'avertissement fait un peu peur...
Bref, le diagnose ne bloque plus mais il affiche VPN en erreur :

root@sphynx25-agriates:~# Query-Auto -C -S test-eole.ac-dijon.fr
Mise à jour le mercredi 05 avril 2017 14:12:18
*** sphynx 2.5.2 (0800069R) ***

Maj-Auto - (VERSION CANDIDATE) - Augmenter le niveau de mise à jour peut empêcher de revenir au niveau de mise à jour stable.
Voulez-vous continuer ? [oui/non]
[non] : oui
Configuration du dépôt Ubuntu avec la source eole.ac-dijon.fr
Configuration du dépôt EOLE avec la source test-eole.ac-dijon.fr
Action update pour root                                                                            
Action list-upgrade pour root
0 nouveau, 13 mis à jour, 0 à enlever
Paquets à mettre à jour : 
    creole (2.5.2-97) (root)
    creole-common (2.5.2-97) (root)
    eole-common-pkg (2.5.2-62) (root)
    eole-pacemaker (2.5.2-24) (root)
    eole-resolvconf (2.5.2-62) (root)
    eole-server (2.5.2-62) (root)
    eole-vpn (2.5.2-13) (root)
    initramfs-tools (0.103ubuntu4.7) (root)
    initramfs-tools-bin (0.103ubuntu4.7) (root)
    makedev (2.3.1-93ubuntu2~ubuntu14.04.1) (root)
    python-creole (2.5.2-97) (root)
    zephir-client (2.5.2-42) (root)
    zephir-stats (2.5.2-42) (root)
root@sphynx25-agriates:~# apt-eole install eole-vpn
Action install pour root
Lecture des listes de paquets…
Construction de l'arbre des dépendances…
Lecture des informations d'état…
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  linux-headers-3.13.0-113 linux-headers-3.13.0-113-generic
  linux-image-3.13.0-113-generic linux-image-extra-3.13.0-113-generic
Veuillez utiliser « apt-get autoremove » pour les supprimer.
Les paquets suivants seront mis à jour :
  eole-vpn
1 mis à jour, 0 nouvellement installés, 0 à enlever et 12 non mis à jour.
Il est nécessaire de prendre 20,9 ko dans les archives.
Après cette opération, 1 024 o d'espace disque supplémentaires seront utilisés.
Réception de : 1 http://test-eole.ac-dijon.fr/eole/ eole-2.5.2-proposed-updates/main eole-vpn all 2.5.2-13 [20,9 kB]
20,9 ko réceptionnés en 0s (459 ko/s)
(Lecture de la base de données... 101590 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de .../eole-vpn_2.5.2-13_all.deb ...
Dépaquetage de eole-vpn (2.5.2-13) sur (2.5.2-12) ...
Paramétrage de eole-vpn (2.5.2-13) ...
root@sphynx25-agriates:~# diagnose 

*** Test du module sphynx version 2.5.2 (sphynx25-agriates 0800069R) ***

*** Paquets installés

Noyau linux : Linux 4.4.0-71-generic => OK

*** Cartes réseau
eth0: Speed: 10000Mb/s Duplex: Full Link detected: yes
eth1: Speed: 10000Mb/s Duplex: Full Link detected: yes

*** Interfaces
sphynx25-agriates:      194.199.47.250 => Ok
sphynx25-agriates:       172.30.188.97 => Ok

*** Services distants
.   Passerelle 194.199.47.254 => Ok
.            DNS 194.199.46.5 => Ok
.            DNS 194.199.46.6 => Ok
.        NTP ntp.ac-amiens.fr => Ok
.               Accès distant => Ok

Sur l'interface réseau eth0
.                         SSH => Désactivé
.                     EAD Web => Désactivé
Sur l'interface réseau eth1
.                         SSH => Ok
.                  EAD Server => Ok
.                     EAD Web => Ok

*** Pare-feu
.       Génération des règles => Ok (22:16:54 30/03/17)
.                    Pare-feu => Ok

*** Validité du certificat
.                    eole.crt => Ok

*** Logrotate (fichiers pris en charge par rsyslog)
Fichiers non pris en charge par logrotate : 0

Filtres automatiques (/etc/logrotate.d/generated_{remote,local}_rules) :  24

*** Mise à jour
.        Dernière mise à jour => OK (Update completed successfully (état le 30 Mar 2017 22:17:14))
.        Reconfigure effectué => OK
.           Reboot nécessaire => Non

*** Réseau virtuel privé
.                         VPN => Erreur
.                         ARV => Ok

*** Messagerie
.               Courrier SMTP => Ok
.              File d'attente => 3 message(s)
.           Messages "Frozen" => 3 message(s)

*** FIN DU DIAGNOSTIC ***
root@sphynx25-agriates:~# test-rvp 

Nombre d'établissements OK :
142 (696 VPN) / 144
root@sphynx25-agriates:~# Query-Auto
Mise à jour le mercredi 05 avril 2017 14:13:40
*** sphynx 2.5.2 (0800069R) ***

Configuration du dépôt Ubuntu avec la source eole.ac-dijon.fr
Configuration du dépôt EOLE avec la source eole.ac-dijon.fr
Action update pour root                                                                            
Action list-upgrade pour root
0 nouveau, 8 mis à jour, 0 à enlever
Paquets à mettre à jour : 
    eole-common-pkg (2.5.2-62) (root)
    eole-resolvconf (2.5.2-62) (root)
    eole-server (2.5.2-62) (root)
    initramfs-tools (0.103ubuntu4.7) (root)
    initramfs-tools-bin (0.103ubuntu4.7) (root)
    makedev (2.3.1-93ubuntu2~ubuntu14.04.1) (root)
    zephir-client (2.5.2-42) (root)
    zephir-stats (2.5.2-42) (root)
root@sphynx25-agriates:~# 

#9 Mis à jour par Fabrice Barconnière il y a presque 7 ans

  • Statut changé de Résolu à En cours
  • % réalisé changé de 100 à 80
  • Restant à faire (heures) changé de 0.25 à 1.0

ipsec statusall doit mettre du temps à répondre. J'ai mis un timeout de 10s.
Je peux allonger le timeout et afficher un warning dans le cas où le code retour n'est pas connu après ce timeout.

#10 Mis à jour par Fabrice Barconnière il y a presque 7 ans

  • % réalisé changé de 80 à 100
  • Restant à faire (heures) changé de 1.0 à 0.5

Un paquet candidat eole-vpn 2.5.2-14 est disponible sur test-eole.ac-dijon.fr.
Olivier, si tu veux tester, c'est la même procédure que #20063#note-4

#11 Mis à jour par Fabrice Barconnière il y a presque 7 ans

  • Statut changé de En cours à Résolu

#12 Mis à jour par Olivier FEBWIN il y a presque 7 ans

Parfait, ça fonctionne nickel !
Bravo Fabrice ;)

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

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

#14 Mis à jour par Olivier FEBWIN il y a plus de 4 ans

Ce problème se reproduit sur Sphynx 2.6.2

Formats disponibles : Atom PDF