Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problème d'import des données de députés (erreurs 500) #188

Open
maximerivolet opened this issue Apr 1, 2022 · 8 comments
Open

Problème d'import des données de députés (erreurs 500) #188

maximerivolet opened this issue Apr 1, 2022 · 8 comments

Comments

@maximerivolet
Copy link

Bonjour,

Nous avons une routine qui récupère tous les matins les données des députés. Depuis le 27/03, nous observons des erreurs tous les jours. En effet, il y a plusieurs URLs (jamais les mêmes) qui tombent en erreur 500.

Ci-dessous ce que nous observons dans nos logs :

error: An error occured while retriving depute from nosdeputes.fr: {"Slug":"cedric-roussel","retryCount":0,"service":"user-service"}
error: An error occured while retriving depute from nosdeputes.fr: {"Slug":"cedric-roussel","retryCount":1,"service":"user-service"}
error: An error occured while retriving depute from nosdeputes.fr: {"Slug":"cedric-roussel","retryCount":2,"service":"user-service"}
error: undefined {"config":{"headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/0.26.1"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":0,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":false,"forcedJSONParsing":***,"silentJSONParsing":***},"url":"https://www.nosdeputes.fr/cedric-roussel/json","xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"status":500}
/home/runner/work/Nucleus/Nucleus/node_modules/axios/lib/core/createError.js:16
  var error = new Error(message);
              ^
Error: Request failed with status code 500

Les urls que nous appelons sont dans ce format : https://www.nosdeputes.fr/cedric-roussel/json

Nos déploiements se font vers 06h30, si ça peut vous aider de votre côté.

Egalement, une capture d'écran d'une url testée avec retour 500 :

image

Cordialement,

@boogheta
Copy link
Contributor

boogheta commented Apr 1, 2022

Côté logs apparemment l'erreur correspond à The template "parlementaireSuccess.php" does not exist or is unreadable in "". ce qui est assez étrange vu que le fichier est bien là et même lu pour répondre aux 95% des autres appels.
@teymour une idée d'où ça pourrait venir ? Un problème d'io face à trop de requetes simultanées ?

Après je note tout de même que vous faites les 600 appels en moins de 10 secondes, ajouter un peu de throttle avec un sleep de quelques dizièmes de seconde pourrait probablement aider et être plus sympa vis à vis de nos serveurs ;)

@teymour
Copy link
Member

teymour commented Apr 1, 2022

L'histoire de template était un effet de bord. Le problème était qu'avec la nouvelle version de php, il faut forcement faire un count sur un array or lorsqu'un parlementaire n'avait qu'un seul mandat, on le fait sait sur null.

b616478 corrige ce problème.

https://www.nosdeputes.fr/cedric-roussel/json fonctionne maintenant depuis chez moi.

@maximerivolet
Copy link
Author

Bonjour,

Pour information, nous avons toujours le problème. Jusqu'ici, nous n'avions pas de problèmes à récupérer les données. Il est à noter qu'il y a déjà un mécanisme de throttle en place.

@teymour
Copy link
Member

teymour commented Apr 6, 2022

Est ce qu'il est possible d'avoir une url qui illustre le problème ? Car celle fournie fonctionne pour moi. Vous avez toujours un problème sur cedric roussel ou s'agit-il de l'exploitation d'une autre requête ? Avoir une heure particulière de requête qui aurait échoué serait également utile pour essayer de remontrer les logs et comprendre l'origine du problème.

@maximerivolet
Copy link
Author

Nos tests sont effectués tous les matins, à 06h07 (préproduction) et 06h27 (production). Il ne faut pas voir la requête à une URL comme une erreur constante. En effet, on obtient une erreur 500 sur certaines URLs.

Depuis le 06 avril en production, on a carrément eu une erreur lors de l'import des groupes parlementaires (url : https://www.nosdeputes.fr/organismes/groupe/json) :

info: Retrieving groupes from nosdeputes.fr... {"service":"user-service"}
error: undefined {"config":{"headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/0.26.1"},"maxBodyLength":-1,"maxContentLength":-1,"method":"get","timeout":0,"transformRequest":[null],"transformResponse":[null],"transitional":{"clarifyTimeoutError":false,"forcedJSONParsing":***,"silentJSONParsing":***},"url":"https://www.nosdeputes.fr/organismes/groupe/json","xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN"},"status":500}

Pour ce cas, on n'a pas de mécanisme de retry en place, mais pour autant, depuis des mois cet import est en place sans erreurs.

Pour la préproduction, la partie groupe parlementaire passe bien, mais on a des erreurs 500 sur les députés pour les urls ci-dessous. Je préfère insister, il s'agit de problèmes sur le moment, il faut regarder dans les logs ce qui se passe. J'ai testé au moment où j'ai rédigé ce message, les urls citées sont bien accessibles.

Si vous avez besoin de plus d'informations, n'hésitez pas à me demander.

@teymour
Copy link
Member

teymour commented Apr 12, 2022

Merci pour ce retour.

Je pense que ca vient d'une mauvaise gestion de l'invalidation de cache dans memcache suite à la migration php7.4.

J'ai changé le moteur de cache du site pour ne plus utiliser memcache. J'ai l'impression que la situation s'est améliorée. Mais des erreurs semble revenues depuis quelques heures.

Le problème pourrait donc venir d'un cache utilisé sur la partie interrogation de la base données (via l'ORM Doctrine). Il faut que je trouve si c'est effectivement utilisé et si oui comment le désactiver.

L'investigation continue...

@KevinBacas
Copy link

Hello, je travaille avec @GoldenIvan sur la routine d'import des données.
Du coup je me permets de vous faire un petit update :)

Depuis ton retour @teymour, les imports de notre côté se passent sans erreur, donc a priori vous avez vu juste ;)

Je laisse @GoldenIvan clore cette issue et on la réouvre si le problème se représente :)

Merci pour votre aide !

@teymour
Copy link
Member

teymour commented Apr 14, 2022

Cool. Merci pour ce retour.

La solution trouvée n'est à mon sens pas très idéale pour nous. Je propose qu'on la laisse ouverte en attendant de trouver le vrai problème avec Memcache, si ca vous va.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants