Tâche #26672
Scénario #26447: Traitement express MEN (5-7)
Zéphir : timeout trop court sur la vérification des dépôts
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
Révisions associées
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.