Advertisement
Guest User

Untitled

a guest
May 26th, 2016
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.00 KB | None | 0 0
  1. [26/05/2016 17:27:45] Jean EYMERIT: Salut Laurent
  2. Tu vas bien ? Pas trop la folie chez vous ?
  3. Je te pose juste un message sur lafoirfouille : ils ont un pblm de synchro de catalogue, apparement le traitement "freeze" et finis par logguer une erreur comme quoi il s'est fait jeter du MySQL (dépasssement du wait_timeout) en soit ca me semble logique.. c est pas un pblm lie a MySQL, MySQL repond bien, c'set ensutie que ca "bloque".
  4. Est ce que par hasard c'est un probleme que vous auriez deja rencontre ? Entre nous, je suis en train de pousse lafoirfouilel a vous contacter pour regarder, car d'apres Decade, c'est un proces natif Hybris et ils ne peuvent que difficilement aller debugger cette fonctionalité.
  5. Réponds moi si tu as le temps !
  6. A bientot :)
  7. [26/05/2016 19:21:14] Laurent Malvert: Salut Jean
  8. [26/05/2016 19:21:18] Laurent Malvert: dur a dire, ca peut etre pas mal de choses
  9. [26/05/2016 19:21:40] Laurent Malvert: est-ce que le freeze est total et avere, ou c’est la synchro qui est tres lente?
  10. [26/05/2016 19:21:56] Laurent Malvert: si c’est le wait_timeout qui arrive, je suppose que c’est en effet un freeze
  11. [26/05/2016 19:23:15] Laurent Malvert: quel est la valeur du wait_timeout, pour commencer?
  12. [26/05/2016 19:23:32] Laurent Malvert: on n’a pas vraiment de valeur recommandee, mais en general la valeur par defaut est deja plutot basse
  13. [26/05/2016 19:25:10] Laurent Malvert: un autre point a regarder serait la version du connecteur mysql utilisee. C’est bete, mais souvent on trouve des vieilles versions utilisees “par habitude” chez les clients, et qui datent parfois pas mal.
  14. [26/05/2016 19:27:42] Laurent Malvert: ensuite, ca peut etre pas mal de choses qui sont sub-optimales du cote de la synchro (mais ca serait juste lent, pas freeze)
  15. [26/05/2016 20:00:01] Laurent Malvert: pardon, j’ai ete intercepte sur d’autres sujets
  16. [26/05/2016 20:00:21] Laurent Malvert: donc comme je disais, il peut y avoir pas mal de trucs mal faits au niveau de la synchro
  17. [26/05/2016 20:00:34] Jean EYMERIT: Pas de soucis, et merci pour ton retour!
  18. En effet
  19. [26/05/2016 20:00:34] Laurent Malvert: ca peut aller de pb de data-model (qui apparaissent quand le catalogue devient gros)
  20. [26/05/2016 20:00:44] Jean EYMERIT: on a deja changer le connector/j en decembre
  21. [26/05/2016 20:00:48] Jean EYMERIT: j’ai plus les numéros de versions en tete
  22. [26/05/2016 20:00:58] Jean EYMERIT: mais il y avait un bug d’incompatibilite
  23. [26/05/2016 20:01:02] Jean EYMERIT: entre le kernel linux utilise
  24. [26/05/2016 20:01:07] Jean EYMERIT: et cette version spécifique du connector/j
  25. [26/05/2016 20:01:16] Jean EYMERIT: hier on a meme tenter de rolleback sur l’ancienne version
  26. [26/05/2016 20:01:20] Jean EYMERIT: mais on avait encore le meme probleme
  27. [26/05/2016 20:02:58] Laurent Malvert: ca peut venir de la config de la synchro elle-meme egalement
  28. [26/05/2016 20:03:03] Laurent Malvert: par exemple, on peut aller dans l’hmc
  29. [26/05/2016 20:03:09] Laurent Malvert: Catalog -> Catalog Sync
  30. [26/05/2016 20:03:42] Jean EYMERIT: un truc étrange également, c’est que la sur la plateforme de recette, ils étaient en train de passer en 5.6, et jdk 8, et ils avaient quand meme le problème (mais qui arrive en random)
  31. [26/05/2016 20:04:03] Laurent Malvert: verifier plusieurs points:
  32. - pas de proprietes a synchroniser qui n’ont pas besoin de l’etre
  33. - verifier que l’ordre de synchro est top-down (container vers types feuilles, e.g. -> Categories -> Products -> MediaContainer -> Media)
  34. [26/05/2016 20:04:22] Jean EYMERIT: Je pourrais leur demande de verifier cela oui (car je n’ai pas accès a leur hmc)
  35. [26/05/2016 20:04:24] Laurent Malvert: apres regarder les JDBCs log
  36. [26/05/2016 20:04:46] Laurent Malvert: voir si les requetes sont toujours longues, ou si elles deviennent de plus en plus longue, ou si on bloque vraiment sur une
  37. [26/05/2016 20:04:52] Jean EYMERIT: Ce qui semble étrange, c’est qu’apparement, ca arriverait (mais moins fréquemment) sur des requêtes toutes bêtes depuis les front aussi
  38. [26/05/2016 20:05:07] Jean EYMERIT: Apparement également c’est pas tjs la meme requete
  39. [26/05/2016 20:05:17] Laurent Malvert: ok
  40. [26/05/2016 20:05:18] Jean EYMERIT: (ils ont active les logs jdbc)
  41. [26/05/2016 20:05:33] Jean EYMERIT: Je pencherait effectivement plus du cote du connecteur ...
  42. [26/05/2016 20:05:37] Jean EYMERIT: mais je ne sais pas trop comment debug ca
  43. [26/05/2016 20:05:51] Laurent Malvert: est-ce que cote DB on peut faire un explain plan d’une des requete qui deconne? elle est peut-etre particulierement mal foutue et genere des parcours violents?
  44. [26/05/2016 20:05:57] Jean EYMERIT: J’aimerais bien arriver a savoir ce qu’il se passe quand le traitement de synchro a fait sa requête ?
  45. [26/05/2016 20:06:29] Jean EYMERIT: oui on pourrait, mais pour l’avoir rejouer manuellement depuis le serveur de DB en local et également depuis le serveur MySQL, il n ‘y avait vraiment pas de soucis
  46. [26/05/2016 20:06:33] Laurent Malvert: apres un pb cote connecteur, ca peut etre dur a diagnostiquer: ca peut etre un bug, ou une mauvaise config des pools (par exemple, si ca se trouve ils starvent leurs connexions, et apres on timeout)
  47. [26/05/2016 20:06:53] Laurent Malvert: ok, c’est deja un bon point en effet
  48. [26/05/2016 20:07:08] Laurent Malvert: donc effectivement probablement plus lie au connecteur ou au pool
  49. [26/05/2016 20:07:13] Jean EYMERIT: D’ailleurs sur ca j’avais une question : on est d’accord qu’Hybris a donc un pool de connexion (ah oui le wait timeout est a 3600)
  50. [26/05/2016 20:07:23] Jean EYMERIT: mais il se passe quoi concretement
  51. [26/05/2016 20:07:24] Laurent Malvert: cote serveur DB, tu arrives a voir si le pool de connexions est sature/bloque?
  52. [26/05/2016 20:07:31] Jean EYMERIT: oui et il ne l’est pas
  53. [26/05/2016 20:07:34] Laurent Malvert: ou c’est vraiment juste une connexion qui deconne sans raison?
  54. [26/05/2016 20:07:45] Jean EYMERIT: une connexion, et qui deconne pas vraiment
  55. [26/05/2016 20:07:48] Laurent Malvert: oui on a une gestion de pool
  56. [26/05/2016 20:07:55] Jean EYMERIT: en fait, on l’a voit passe
  57. [26/05/2016 20:07:59] Jean EYMERIT: elle s'execute
  58. [26/05/2016 20:08:03] Jean EYMERIT: elle passe en sleep
  59. [26/05/2016 20:08:15] Jean EYMERIT: on voit tjs le nombre de rows retourne et ces stats la avec un show processlist
  60. [26/05/2016 20:08:22] Jean EYMERIT: donc pour moi le serveur a bien renvoyé son retour
  61. [26/05/2016 20:08:31] Jean EYMERIT: c’est « après » que ca bloque
  62. [26/05/2016 20:08:42] Jean EYMERIT: et pour ma question sur les pools
  63. [26/05/2016 20:08:54] Jean EYMERIT: ca se passe comment justement quand le timeout arrive a terme ?
  64. [26/05/2016 20:09:06] Jean EYMERIT: logiquement Hybris n’utilise pas cette connexion et en re-ouvre une non ?
  65. [26/05/2016 20:10:08] Laurent Malvert: la gestion du pool est fait avec commons pool (http://commons.apache.org/proper/commons-pool/) et dbcp (https://commons.apache.org/proper/commons-dbcp/)
  66. [26/05/2016 20:10:27] Laurent Malvert: je vais etre a court de batterie la, desole
  67. [26/05/2016 20:10:34] Jean EYMERIT: tkt pas
  68. [26/05/2016 20:10:39] Jean EYMERIT: c’est deja super sympa d’avoir répondu a ca
  69. [26/05/2016 20:10:48] Jean EYMERIT: si jamais tu as une idée, hésite pas :P
  70. [26/05/2016 20:10:56] Jean EYMERIT: notamment sur arrive a debug ce qu’il se passe a ce niveau la
  71. [26/05/2016 20:11:06] Jean EYMERIT: bonne soirée
  72. [26/05/2016 20:11:10] Laurent Malvert: dans leur hac, verifie les valeurs des db.pool*
  73. [26/05/2016 20:11:35] Laurent Malvert: et apres la facon dont ca fonctionne, a vrai dire c’est peu documente
  74. [26/05/2016 20:11:56] Laurent Malvert: donc je prefere ne pas m’avancer sans re-regarder le code de la plateforme
  75. [26/05/2016 20:12:20] Laurent Malvert: mais normalement on avait regarde deja pdt l’intervention sur IPH
  76. [26/05/2016 20:12:51] Laurent Malvert: et t’as un pool de connexions actives, et un pool de connexions a garder en idle, et des timeouts a activer sur les connexions et les requetes
  77. [26/05/2016 20:13:24] Laurent Malvert: une fois la requete terminee, la connexion devrait repasser en idle (mais rester ouverte dans la limite de l’idle pool, si je me souviens bien
  78. [26/05/2016 20:13:27] Laurent Malvert: a verifier
  79. [26/05/2016 20:13:54] Laurent Malvert: pour le debug ca, le mieux c’est de regarder les compteurs JMX
  80. [26/05/2016 20:15:04] Laurent Malvert: hybris:tenantscope=Master Tenant,datasource=DataSources > NumInUse
  81.  
  82. hybris:tenantscope=Master Tenant,datasource=DataSources > NumPhysicalOpen
  83.  
  84. hybris:tenantscope=Master Tenant,datasource=DataSources > Connections
  85. [26/05/2016 20:15:08] Laurent Malvert: doit y en avoir d'autres
  86. [26/05/2016 20:15:47] Jean EYMERIT: en effet c’est pas bete
  87. [26/05/2016 20:16:10] Jean EYMERIT: mais au niveau code, il y a pas moyen de rajouter du debug dans ce genre de traitement par hasard ?
  88. [26/05/2016 20:16:25] Laurent Malvert: doit y avoir un numIdle aussi
  89. [26/05/2016 20:16:36] Laurent Malvert: et numActive
  90. [26/05/2016 20:16:54] Laurent Malvert: on doit pouvoir jouer sur le niveau de logging avec les configs des appenders log4j
  91. [26/05/2016 20:17:20] Laurent Malvert: mais encore faut-il que les devs Hybris aient penser a mettre des appels au logger a ces endroits pour que ca active qqch
  92. [26/05/2016 20:18:30] Laurent Malvert: object_name: hybris:tenantscope=Master Tenant,datasource=DataSources
  93. metrics: NumInUse, MaxInUse, NumPhysicalOpen, MaxPhysicalOpen
  94. [26/05/2016 20:18:58] Laurent Malvert: et aussi Connections, MillisWaitedForConnection
  95. [26/05/2016 20:19:34] Laurent Malvert: cote Tomcat:
  96. object_name: Catalina:type=DataSource,class=javax.sql.DataSource,name=*
  97. metrics: numActive, numIdle
  98. [26/05/2016 20:20:58] Jean EYMERIT: ok vraiment intéressant tout ca :)
  99. je vais essayer de voir ou ca nous mene
  100. [26/05/2016 20:21:25] Jean EYMERIT: je te tiendrais informer, si jamais t’as d’autres pistes (et bien sur du temps - je sais ce que c’est …) hésite pas ;)
  101. [26/05/2016 20:21:28] Jean EYMERIT: merci encore
  102. [26/05/2016 20:22:21] Laurent Malvert: cote temps ca va etre dur :)
  103. [26/05/2016 20:22:23] Laurent Malvert: bon courage
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement