Projet

Général

Profil

Tâche #26672

Scénario #26447: Traitement express MEN (5-7)

Zéphir : timeout trop court sur la vérification des dépôts

Ajouté par Emmanuel GARETTE il y a environ 5 ans. Mis à jour il y a environ 5 ans.

Statut:
Fermé
Priorité:
Normal
Début:
07/02/2019
Echéance:
% réalisé:

100%

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

Description

A chaque reconfigure le script check_maj_eole.py est exécuté.

Mais celui-ci termine en timeout si le dépôt n'a pas répondu dans les 5 secds.

Ce délai est trop court pour des serveurs en nouvelle calédonie.

Je support que le 5 seconds est lié au creoleclient. Je propose donc de mettre un timeout de 5 secds seulement pour les requêtes creoleclient et revenir à la valeur par défaut pour les autres appels :

diff --git a/eole/check_maj_eole.py b/eole/check_maj_eole.py
index 540727b..5dec0f8 100755
--- a/eole/check_maj_eole.py
+++ b/eole/check_maj_eole.py
@@ -229,6 +229,7 @@ def purge_old_data(codename):
         os.unlink(f_package)

 if __name__ == '__main__':
+    ori_sockettimeout = socket.getdefaulttimeout()
     socket.setdefaulttimeout(5)
     dico = CreoleClient()
     if "reconfigure" in sys.argv:
@@ -239,7 +240,10 @@ if __name__ == '__main__':
     opener = get_url_opener(dico)
     # test de connexion au serveur de maj
     serveurs_maj_ok = []
-    for serveurs in (dico.get_creole('serveur_maj_clients'), dico.get_creole('serveur_maj_envole', []) or []):
+    maj_client = dico.get_creole('serveur_maj_clients')
+    maj_envole = dico.get_creole('serveur_maj_envole', [])
+    socket.setdefaulttimeout(ori_sockettimeout)
+    for serveurs in maj_client, maj_envole:
         for serv_maj in serveurs:
             if serv_maj not in serveurs_maj_ok:
                 try:

Sinon l'autre solution est de mettre un timeout de 30 secds par défaut eu lieu de 5.


Demandes liées

Lié à Distribution EOLE - Tâche #23844: Étudier le traceback Zéphir/check_maj_eole.py Fermé 07/05/2018

Révisions associées

Révision 08e95198 (diff)
Ajouté par Fabrice Barconnière il y a environ 5 ans

Default socket timeout can be too short to check Eole updates

  • eole/check_maj_eole.py
    • Creole client has its own timeout (5s)
    • Set socket default timeout to 30s after CreoleCleint requests

ref #26672

Historique

#1 Mis à jour par Joël Cuissinat il y a environ 5 ans

  • Lié à Tâche #23844: Étudier le traceback Zéphir/check_maj_eole.py ajouté

#2 Mis à jour par Fabrice Barconnière il y a environ 5 ans

  • Tracker changé de Demande à Tâche
  • Temps estimé mis à 1.00 h
  • Tâche parente mis à #26447
  • Restant à faire (heures) mis à 1.0

#3 Mis à jour par Fabrice Barconnière il y a environ 5 ans

Et sinon, ce patch ? On positionne un timeout de 30s après les appels de creoleclient :

diff --git a/eole/check_maj_eole.py b/eole/check_maj_eole.py
index 540727b..cbfe770 100755
--- a/eole/check_maj_eole.py
+++ b/eole/check_maj_eole.py
@@ -229,7 +229,6 @@ def purge_old_data(codename):
         os.unlink(f_package)

 if __name__ == '__main__':
-    socket.setdefaulttimeout(5)
     dico = CreoleClient()
     if "reconfigure" in sys.argv:
         mode_reconf = True
@@ -239,7 +238,10 @@ if __name__ == '__main__':
     opener = get_url_opener(dico)
     # test de connexion au serveur de maj
     serveurs_maj_ok = []
-    for serveurs in (dico.get_creole('serveur_maj_clients'), dico.get_creole('serveur_maj_envole', []) or []):
+    maj_client = dico.get_creole('serveur_maj_clients')
+    maj_envole = dico.get_creole('serveur_maj_envole', [])
+    socket.setdefaulttimeout(30)
+    for serveurs in maj_client, maj_envole:
         for serv_maj in serveurs:
             if serv_maj not in serveurs_maj_ok:
                 try:

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

  • Statut changé de Nouveau à En cours

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

  • Assigné à mis à Fabrice Barconnière

#6 Mis à jour par Fabrice Barconnière il y a environ 5 ans

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

#7 Mis à jour par Joël Cuissinat il y a environ 5 ans

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

Vu 2.7.1.

Formats disponibles : Atom PDF