Project

General

Profile

Scénario #27347

Nombreux timeout dans les logs zephir

Added by Thierry Bertrand over 2 years ago. Updated over 2 years ago.

Status:
Terminé (Sprint)
Priority:
Normal
Assigned To:
Category:
-
Start date:
05/06/2019
Due date:
05/17/2019
% Done:

100%

Story points:
1.0
Remaining (hours):
0.00 hour
Velocity based estimate:
Release:
Release relationship:
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 ?


Subtasks

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

History

#1 Updated by Joël Cuissinat over 2 years ago

  • Tracker changed from Demande to Scénario
  • Project changed from conf-zephir to Zéphir
  • Subject changed from nombreux timeout dans les logs zephir to Nombreux timeout dans les logs zephir
  • Due date set to 04/12/2019
  • Target version set to sprint 2019 13-15 Equipe MENSR
  • Release set to EOLE 2.7.1

#2 Updated by Joël Cuissinat over 2 years ago

  • Story points set to 1.0

#3 Updated by Joël Cuissinat over 2 years ago

  • Assigned To set to Joël Cuissinat

#4 Updated by Joël Cuissinat over 2 years ago

  • Assigned To changed from Joël Cuissinat to Daniel Dehennin

#5 Updated by Thierry Bertrand over 2 years ago

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 Updated by Bruno Boiget over 2 years ago

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 Updated by Bruno Boiget over 2 years ago

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 Updated by Scrum Master over 2 years ago

  • Target version changed from sprint 2019 13-15 Equipe MENSR to sprint 2019 18-20 Equipe MENSR

#9 Updated by Gilles Grandgérard over 2 years ago

  • Status changed from Nouveau to Terminé (Sprint)

Also available in: Atom PDF