Projet

Général

Profil

Scénario #27347

Nombreux timeout dans les logs zephir

Ajouté par Thierry Bertrand il y a environ 5 ans. Mis à jour il y a presque 5 ans.

Statut:
Terminé (Sprint)
Priorité:
Normal
Assigné à:
Catégorie:
-
Début:
06/05/2019
Echéance:
17/05/2019
% réalisé:

100%

Points de scénarios:
1.0
Restant à faire (heures):
0.00 heure
Estimation basée sur la vélocité:
Release:
Liens avec la release:
Auto

Description

Sur des zephirs 2.7, on rencontre désormais de nombreux messages de ce type :

2019-03-17T06:42:11.049201+01:00 zephir-maitre.cete-ouest.i2 zephir_backend[11664]: 2019-03-17T06:42:11+0100 [-] Timing out client: IPv4Address(TCP, '172.26.62.72', 56402)
2019-03-17T06:42:11.049486+01:00 zephir-maitre.cete-ouest.i2 zephir_backend: [-] Timing out client: IPv4Address(TCP, '172.26.62.72', 56402)
2019-03-17T06:42:26.049949+01:00 zephir-maitre.cete-ouest.i2 zephir_backend[11664]: 2019-03-17T06:42:26+0100 [-] Forcibly timing out client: IPv4Address(TCP, '172.26.62.72', 56402)
2019-03-17T06:42:26.050270+01:00 zephir-maitre.cete-ouest.i2 zephir_backend: [-] Forcibly timing out client: IPv4Address(TCP, '172.26.62.72', 56402)

Dans un premier temps, j'ai mis ça sur le compte de la pf de virtualisation et de sa limite de saturation.

J'ai quand même vérifié sur un zephir local si on n'avait pas ce soucis mais en fait, si !
Ce zephir doit avoir au pire 10 machines de saisies et enregistrées et les communications se font au niveau du réseau local.

Je n'avais pas ce type de messages sur le parc zephir lorsqu'il était en 2.6.2.
Pour info, c'est par rafales de 50 qu'un des zephir de production tue des connections en 2s !
N'aurait-on pas un soucis d'échanges entre le client zephir et le backend ?
Est ce que la durée de timeout peut être augmentée facilement pour tester ?


Sous-tâches

Tâche #28177: Modifier le timeout dans le code.FerméDaniel Dehennin

Historique

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

  • Tracker changé de Demande à Scénario
  • Projet changé de conf-zephir à Zéphir
  • Sujet changé de nombreux timeout dans les logs zephir à Nombreux timeout dans les logs zephir
  • Echéance mis à 12/04/2019
  • Version cible mis à sprint 2019 13-15 Equipe MENSR
  • Release mis à EOLE 2.7.1

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

  • Points de scénarios mis à 1.0

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

  • Assigné à mis à Joël Cuissinat

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

  • Assigné à changé de Joël Cuissinat à Daniel Dehennin

#5 Mis à jour par Thierry Bertrand il y a environ 5 ans

Pour chaque synchro_zephir effectué, on obient systématiquement les lignes suivantes :

2019-03-25T15:37:32.038644+01:00 vm-pne-eole-05.ac.cs zephir_backend[16700]: 2019-03-25T15:37:32+0100 [_GenericHTTPChannelProtocol (TLSMemoryBIOProtocol),10191,172.26.48.254] connexion du serveur 6751
2019-03-25T15:37:32.044614+01:00 vm-pne-eole-05.ac.cs zephir_backend: [_GenericHTTPChannelProtocol (TLSMemoryBIOProtocol),10191,172.26.48.254] connexion du serveur 6751
2019-03-25T15:38:24.618644+01:00 vm-pne-eole-05.ac.cs zephir_backend[16700]: 2019-03-25T15:38:24+0100 [-] Timing out client: IPv4Address(TCP, '172.26.48.254', 47350)
2019-03-25T15:38:24.618805+01:00 vm-pne-eole-05.ac.cs zephir_backend: [-] Timing out client: IPv4Address(TCP, '172.26.48.254', 47350)
2019-03-25T15:38:39.619983+01:00 vm-pne-eole-05.ac.cs zephir_backend[16700]: 2019-03-25T15:38:39+0100 [-] Forcibly timing out client: IPv4Address(TCP, '172.26.48.254', 47350)
2019-03-25T15:38:39.620202+01:00 vm-pne-eole-05.ac.cs zephir_backend: [-] Forcibly timing out client: IPv4Address(TCP, '172.26.48.254', 47350)

soit :
connexion du serveur à t
déclaration du serveur en timeout à t+52s
coupure de connexion 15s plus tard

A noter que /usr/share/zephir/scripts/zephir_client call ne génère aucune ligne de log.
A noter aussi que les ordres demandés par le zephir sont correctement effectués sur le module.

#6 Mis à jour par Bruno Boiget il y a environ 5 ans

J'ai fait quelques essais sur un serveur Zéphir 2.7.0

Je constate bien ces logs concernants la fermeture de connexions en cas d'utilisation de l'application web, de connexion des serveurs, ...
A première vue je ne constate pas d'impact sur le fonctionnement ou les performances, je suppose que c'est juste le serveur qui tue des connexions "idle".

Après avoir regardé le code des librairies twisted, j'ai trouvé une solution pour augmenter le timeout à 10 minutes qui semble régler le problème.

Pour tester :

  • dans /usr/lib/python2.7/dist-packages/zephir/backend/backend_tap.py
    • après
      rpc_server = server.Site(zephir_users)

      ajouter une ligne :
      rpc_server.timeOut = 600
    • changer :
          Server2 = internet.SSLServer(portHTTP, server.Site(root),ServerContextFactory())
      

      par :
          site = server.Site(root)
          site.timeOut = 600
          Server2 = internet.SSLServer(portHTTP, site, ServerContextFactory())
      
  • dans /usr/lib/python2.7/dist-packages/zephir/web/zprtap.py
    • après
      site = ZephirSite(root)

      ajouter une ligne :
      site.timeOut = 600

Relancer les services zephir_web et zephir. Dans mon cas, je n'ai plus constaté le problème après cette modification.

Si la solution convient, le mieux serait de mettre une constante de configuration commune du timeout dans /usr/.../zephir/config.py

#7 Mis à jour par Bruno Boiget il y a environ 5 ans

Pour vérification, j'ai récupéré la valeur par défaut de "timeOut" :

  • sur zéphir 2.6.2 : 43200 (12 heures)
  • sur zéphir 2.7.0 : 60 (1 minute)

#8 Mis à jour par Scrum Master il y a presque 5 ans

  • Version cible changé de sprint 2019 13-15 Equipe MENSR à sprint 2019 18-20 Equipe MENSR

#9 Mis à jour par Gilles Grandgérard il y a presque 5 ans

  • Statut changé de Nouveau à Terminé (Sprint)

Formats disponibles : Atom PDF