Open AudreyRemy opened 2 years ago
C'est nouveau ? Suite à une mise à jour de Geotrek-rando-v3 ? En quelle version ? A voir si ce n'est pas le même soucis que https://github.com/GeotrekCE/Geotrek-rando-v3/issues/717. J'investigue.
Il faudrait des logs de Geotrek-rando-v3 pour pouvoir identifier le soucis et t'aider (avec docker-compose up
au moment où les pages en erreur sont ouvertes dans un navigateur web, voir https://github.com/GeotrekCE/Geotrek-rando-v3/blob/main/docs/installation.md#install-geotrek-rando).
Et savoir en quelle version de Geotrek-rando-v3 vous êtes. Pour voir si le même soucis que l'autre ticket mentionné avec l'ajout dans la 3.9.0 des signalétiques, aménagements publiées et services.
En tout cas pour la dernière indiquée, elle a :
Je ne vois pas de soucis similaire à l'autre ticket mentionné à priori. Les types de signalétique et d'aménagements utilisés sont bien renvoyées par les routes des types (https://geotrek-admin.le64.fr/api/v2/infrastructure_type/ et https://geotrek-admin.le64.fr/api/v2/signage_type/)
Bonjour @camillemonchicourt,
Désolée pour le temps de réponse, je n'ai pas accès au serveur donc j'avais besoin de mes collègues.
Nous venons de faire la commande et voilà le résultat :
adm100522@PZL301-DOCKER:/var/docker-cd64/geotrek-rando$ sudo docker-compose up geotrek-rando is up-to-date Attaching to geotrek-rando geotrek-rando | yarn run v1.22.18 geotrek-rando | $ NODE_ENV=production node ./src/server.js geotrek-rando | > Ready on http://localhost:3000 geotrek-rando | TypeError: Cannot read properties of undefined (reading 'pictogramUri') geotrek-rando | at DetailsInformationDesk (/app/src/.next/server/chunks/4074.js:3955:52) geotrek-rando | at d (/app/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:33:498) geotrek-rando | at bb (/app/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:36:16) geotrek-rando | at a.b.render (/app/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:42:43) geotrek-rando | at a.b.read (/app/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:41:83) geotrek-rando | at Object.exports.renderToString (/app/node_modules/react-dom/cjs/react-dom-server.node.production.min.js:52:138) geotrek-rando | at renderPage (/app/node_modules/next/dist/server/render.js:673:46) geotrek-rando | at Object.ctx.renderPage (/app/src/.next/server/pages/_document.js:59:34) geotrek-rando | at Object.defaultGetInitialProps (/app/node_modules/next/dist/server/render.js:315:51) geotrek-rando | at Function.getInitialProps (/app/src/.next/server/chunks/3590.js:515:20)
Version Geotrek rando 3.8
Merci.
OK encore un "TypeError: Cannot read properties of undefined (reading 'pictogramUri')"...
Encore une fois la rando doit être associée à un objet non renvoyé par l'API donc il n'arrive pas à en récupérer le picto, donc la page crashe.
Il faudrait qu'on voit pour ignorer ce genre de cas plutôt que de crasher la page.
Mais en attendant il faudrait quel objet pose soucis dans tes données et ton API. Cette erreur remonte en ouvrant quelle fiche rando ?
Alors je pense que c'était cette page https://nature64.fr/trek/11538-GR-10-De-Hendaye-a-Olhette-etape-n1?parentId=4614 mais le problème maintenant c'est qu'on a une erreur 502 bad gateway dès la page d'accueille www.nature64.fr
Là c'est autre chose... A voir ce que vous avez fait qui a entraîné cela... ?
docker-compose up docker-compose logs -t
Faut-il faire sudo docker-compose up -d --force-recreate ?
Ah bah c'est normal alors. Quand on fait "docker-compose up" (sans l'option -d) dès qu'on sort du terminal, le container docker est arrêté ! C'est expliqué dans la doc et im ne faut pas le faire en production en effet.
Merci Camille le container est relancé. Donc la page est https://nature64.fr/trek/11538-GR-10-De-Hendaye-a-Olhette-etape-n1?parentId=4614
OK je vois le soucis grâce aux logs. Cette rando est associé au lieu d'information ayant l'ID 12 : https://geotrek-admin.le64.fr/api/v2/trek/11538/ Mais on voit que l'API ne renvoit pas de lieu d'information avec l'ID 12 : https://geotrek-admin.le64.fr/api/v2/informationdesk/
A voir si ce lieu d'information existe bien dans votre BDD ? Et si oui, pourquoi l'API de Geotrek-admin ne le renvoie pas ?
C'est le même soucis pour la rando 11553 (https://geotrek-admin.le64.fr/api/v2/trek/11553/) qui est associée au lieu d'information 6, alors que l'API ne renvoie pas de lieu d'information avec l'ID 6 : https://geotrek-admin.le64.fr/api/v2/informationdesk/
Et toujours pareil pour la rando 11447 (https://geotrek-admin.le64.fr/api/v2/trek/11447/) qui est associée au lieu d'information 10, alors que celui-ci n'est pas non plus renvoyée https://geotrek-admin.le64.fr/api/v2/informationdesk/
Peux-tu vérifier si il y a un soucis dans tes données ou ta BDD Geotrek-admin, ou si il y a un soucis sur l'API ?
A priori les lieux d'informations existent bien, le problème est plus compliqué que ça.
L'API va chercher les lieux d'information liés à des objets publiés. Or, le lieux d'information n'est associé à aucun itinéraire publié puisque l'étape N°1 du GR10 n'est pas publiée. Or, comme l'itinérance permet d'afficher les enfants même lorsque ceux-ci ne sont pas publiés ca peut poser un problème (c'est ce cas précis qui se produit pour le 64).
Il faudrait corriger l'API pour qu'elle affiche les lieux d'information liés à des objets publiés ou à des objets enfants non publiés dont le parent est publié.
Mais il faudrait surtout modifier Rando V3 pour que l'appli ne crash pas dès qu'il manque une information.
OK je capte, merci pour l'investigation et les précisions. Solution facile : Associer ces lieux d'information aussi à la fiche itinérance mère (publiée) et pas seulement aux étapes de l'itinérance (non publiées).
Et en effet, côté Geotrek-rando-v3, on a évoqué plus largement le fait que quand un objet n'est pas renvoyé par l'API Geotrek-rando devrait l'ignorer et non pas crasher.
Bonjour Merci @babastienne et @camillemonchicourt Comment dois-je procéder pour associer ces lieux d'informations ? Je pense que les éléments viennent de Tourinsoft via le parser.
Salut. Ah OK ils seraient associés automatiquement aux étapes mais pas à l'itinérance (itinéraire parent) ? Il te suffit de modifier l'itinéraire parent et d'y associer les lieux de renseignement souhaités.
A voir si cette info n'est pas écrasée par le prochain import des itinéraires depuis Tourisnsoft ?
L'itinéraire parent est créé dans Geotrek. Seules les étapes arrivent de Tourinsoft donc ça devrait être bon. Je vais tester. Merci @camillemonchicourt
Lorsque j'ajoute le lieux de renseignements de l'étape 1 (étape qui contenait l'erreur) à l'itinéraire parent, j'obtiens l'erreur sur l’itinéraire parent également. Toutes les étapes ne sont pas concernées par cette erreur alors qu'elles ont des lieux de renseignement qui ne sont pas associés à l’itinéraire parent
Oui, car les lieux de renseignement sont gardés en cache par Geotrek-rando-v3 pour pas qu'il les redemande à l'API de Geotrek-admin à chaque fois.
Pour remettre le cache serveur de Geotrek-rando-v3 et ainsi interroger à nouveau l'API, il faut restart le docker de Geotrek-rando-v3 (docker-compose restart
).
Après ça, ça devrait être bon.
Merci. Mes collègues sont absents donc je vous tiens informés dès que je trouve une autre personne qui pourrait restart Geotrek Rando. Par contre je ne comprends pas pourquoi toutes les étapes ne sont pas concernées par cette erreur alors qu'elles ont des lieux de renseignement également
Car elles doivent être associés à des lieux de renseignement qui sont associés par ailleurs à au moins un itinéraire publié. L'API renvoie les lieux de renseignement qui sont associés à au moins un itinéraire publié. Le soucis se pose sur les lieux de renseignement qui sont uniquement associés à des itinéraires non publiés (étapes).
Ok merci @camillemonchicourt pour tes retours
C'est bon ça a l'air de fonctionner. Merci @babastienne et @camillemonchicourt Je n'ai pas fermé le ticket car il y a toujours l'idée de ne pas faire crasher l'appli mais si cela est déjà mentionné par ailleurs je te laisse clôturer Camille.
Bonjour, Même erreur 500 constatée en upgrade de 3.8.5 vers latest (3.10.2). J'ai remis la 3.8.5 et constaté que le problème survient dès le passage en 3.9.0. Rien dans les logs nginx ni dans ceux du docker. Je suis preneur de toute idée.
Salut. La page te renvoie la même erreur (Sorry this is not working properly), indiquant que la page n'arrive pas à se construire, mais l'origine du soucis est certainement différent. Dans le cas du CD64, le soucis était particulier à leur contexte, où certains lieux de renseignement étaient associés uniquement à des itinéraires non publiés. Donc ces lieux de renseignement n'étaient pas renvoyés par l'API et donc les pages des randos associées à ces lieux de renseignement non renvoyés par l'API plantaient.
Globalement, on aimerait faire en sorte que si des infos associées à un objet ne sont pas renvoyés dans l'API, cela ne fasse pas planter la page de l'objet. C'est une évolution à prévoir, financer, réaliser.
Dans ton cas @noelmartinon, il faudrait voir la page de quel objet plante, voir quel est le message d'erreur affiché dans la console du navigateur, et analyser au niveau du contenu de cet objet, si une info est manquante dans l'API.
Dans la 3.9.0, on a ajouté l'affichage de certains champs sur les randos, mais je ne vois pas en quoi cela pourrait faire planter des pages. On a aussi ajouté l'affichage des aménagements et signalétiques publiés sur les cartes des randos et sites Outdoor, mais là non plus je ne vois pas pourquoi cela pourrait faire planter des pages. Si tu peux repasser en 3.10 et indiquer des pages précises dont le chargement plante ? Tu peux m'envoyer ça par email si ton Geotrek-rando-v3 n'est pas encore sur une URL publiable.
Le soucis remonté par @noelmartinon est le même que https://github.com/GeotrekCE/Geotrek-rando-v3/issues/717#issuecomment-1167138933
Il a des randos qui ont des services à proximité. L'API de Geotrek-admin renvoie bien ces services, mais pas les types de services associés. Donc cela fait planter l'affichage des pages de ces randos qui ont des services à proximité.
A creuser au niveau de Geotrek-admin et de son API, même si côté Geotrek-rando-v3, quand l'API ne renvoie pas un objet, cela ne devrait pas faire planter la page, mais ignorer l'objet absent de l'API.
Bonjour, Nous avons des erreurs sur notre site nature64.fr sur certaines fiches rando.
https://nature64.fr/trek/11538-GR-10-De-Hendaye-a-Olhette-etape-n1?parentId=4614
https://nature64.fr/trek/11553-GR-10-Du-Col-des-Veaux-a-Bidarray-etape-n5?parentId=4614
https://nature64.fr/trek/11443-GR-78-de-Lestelle-Betharram-a-Bruges-etape-n1?parentId=109
https://nature64.fr/trek/11447-GR-78-De-Bruges-a-Buzy-etape-n2?parentId=109
Je ne comprends pas d’où viennent ces erreurs. Je suis allée vérifier, la géométrie semble bien valide. Je n'ai pas relevé toutes les fiches avec erreurs mais il se peut qu'il y en ait d'autres.
Merci d'avance pour vos retours. Bonne journée.