Tâche #26672
Scénario #26447: Traitement express MEN (5-7)
Zéphir : timeout trop court sur la vérification des dépôts
Status:
Fermé
Priority:
Normal
Assigned To:
Target version:
Remaining (hours):
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.
Related issues
Associated revisions
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
History
#1 Updated by Joël Cuissinat over 4 years ago
- Related to Tâche #23844: Étudier le traceback Zéphir/check_maj_eole.py added
#2 Updated by Fabrice Barconnière over 4 years ago
- Tracker changed from Demande to Tâche
- Estimated time set to 1.00 h
- Parent task set to #26447
- Remaining (hours) set to 1.0
#3 Updated by Fabrice Barconnière over 4 years ago
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 Updated by Fabrice Barconnière over 4 years ago
- Status changed from Nouveau to En cours
#5 Updated by Fabrice Barconnière over 4 years ago
- Assigned To set to Fabrice Barconnière
#6 Updated by Fabrice Barconnière over 4 years ago
- Status changed from En cours to Résolu
- % Done changed from 0 to 100
- Remaining (hours) changed from 1.0 to 0.1
#7 Updated by Joël Cuissinat over 4 years ago
- Status changed from Résolu to Fermé
- Remaining (hours) changed from 0.1 to 0.0
Vu 2.7.1.