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

[Question] Error 500 sur certaines randos avec un nom trop long #717

Closed
mviadere-openig opened this issue Jun 24, 2022 · 17 comments
Closed
Labels
question Further information is requested

Comments

@mviadere-openig
Copy link
Contributor

Gtk-Rando : latest
Gtk-Admin 2.84.1

Certaines randos sur le randov3 (comme celle-ci : https://rando.tourisme-pyrenees-mediterranee.fr/trek/14539-(E-12-Sentier-Littoralguide-2022)-Reserve-Naturelle-du-Mas-Larrieu---Le-Racou) retourne une error 500 lorsque l'on veut voir la fiche.

Pourtant la rando remontent bien avec l'api : https://geotrek.tourisme-pyrenees-mediterranee.fr/api/v2/trek/14539/

J'ai proposé à l'OT qui m'a fait remonter le problème de changer le nom de la rando, mais ils l'ont déjà utilisé cet url (et d'autres) pour faire des QRCode pour un guide papier. Est-ce qu'une redirection s'impose dans ce genre de situation ?

@camillemonchicourt
Copy link
Member

Je ne vois pas de raison qu'un de rando long fasse planter Geotrek-rando-v3.
Je viens de tester sur notre serveur de DEMO en mettant le même nom à une rando, et pas de soucis : https://gtr3demo.ecrins-parcnational.fr/trek/582-(E-12-Sentier-Littoralguide-2022)-Reserve-Naturelle-du-Mas-Larrieu---Le-Racou

Mais en effet, si tu veux changer le nom, pas de soucis. Il suffit de faire une redirection. Tu peux le faire au niveau de Nginx, ou alors du fichier redirects.json existant dans la configuration de Geotrek-rando-v3 (https://github.com/GeotrekCE/Geotrek-rando-v3/blob/main/frontend/customization/config/redirects.json)

@camillemonchicourt camillemonchicourt added enhancement New feature or request question Further information is requested and removed enhancement New feature or request labels Jun 24, 2022
@camillemonchicourt
Copy link
Member

En tout cas, ton erreur doit venir d'ailleurs.
Il faudrait voir le log de Geotrek-rando-v3 associé à l'erreur 500.

@mviadere-openig
Copy link
Contributor Author

mviadere-openig commented Jun 27, 2022

Voici les logs avec la commande docker-compose logs -t :
error_randov3_270622.log

La seule erreur que je comprends est : TypeError: Cannot read properties of undefined (reading 'pictogram').

Cela voudrait dire qu'il y a un pictogramme utilisé sur la rando qui n'est pas au bon format ?

Je suis allé voir la rando sur le Geotrek-Admin, effectivement il y a plusieurs soucis (voir image-dessous) :

  • le profil altimétrique est complètement erroné,
  • les pictogrammes affichés sont en .png et non .svg (ce qui n'est pas bon je suppose)

image

Je pense que le mieux pour le moment est de demander au référent de retracer l'itinéraire et aussi de changer ses pictogrammes pour les mettre en .svg (@camillemonchicourt tu confirmes ?). D'ailleurs il m'ont fait remarquer que l'url fonctionnait très bien jusqu'à jeudi (jusqu'à ce que je fasse les maj du gtk-admin et gtk-rando donc).

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Jun 27, 2022

Le soucis vient du fait qu'il cherche un pictogramme d'un objet et qu'il ne le trouve pas dans l'API.
C'est potentiellement du fait de l'ajout des signalétiques, aménagements publiés et services dans la version 3.9.0 de GTR.
Pour ces 3 objets, il utilise un picto par défaut si les catégories n'ont pas de picto dédié.
Si elles ont un picto dédié à la catégorie, alors elles affichent celui-ci.
De mémoire, si le picto est en PNG cela fonctionne quand même.
Mais je vais creuser un peu au niveau de ton API si il manque quelque chose, ou si il y a un cas qu'on n'a pas géré.

@camillemonchicourt
Copy link
Member

Je vois un soucis au niveau des services : La rando a des types de service avec l'ID 4, hors il n'y a pas de service de type 4 dans la route des types de services.

Pas de raison de retracer la rando.

Si tu ajoutes le type de service avec ID = 4, il faudra restart le docker de Geotrek-rando pour qu'il aille vider son cache des types de services et prendre en compte la modification côté Geotrek-admin.

@mviadere-openig
Copy link
Contributor Author

Merci Camille pour ton investigation, j'ai fait la mienne de mon côté :
image

le type de service avec l'id =4 existe bien dans Geotrek-Admin, et il est aussi bien présent en BDD :
image

Ce qui veut dire pour moi qu'il ne remonte plus dans l'API depuis la mise à jour.

@camillemonchicourt
Copy link
Member

OK donc un soucis d'API.
Mais non, ça ne veut pas dire qu'il remontait avant et ne remonte plus.
C'est juste car on interroge et affiche les services dans GTR que depuis sa version 3.9.0.
Avant on les interrogeait pas et les affichait pas donc le soucis de l'API ne se voyait pas...

A corriger côté GTA donc.

@mviadere-openig
Copy link
Contributor Author

Qu'est-ce je peux faire actuellement en attendant que ce soit résolu, downgrade la version de gtk-rando ?

@camillemonchicourt
Copy link
Member

Oui c'est le plus simple.
En fixant la version à la place de "latest" dans le fichier .env

@mviadere-openig
Copy link
Contributor Author

mviadere-openig commented Jun 28, 2022

Très bien, j'ai passé en version 3.8.5, ça fonctionne.

Je note ici les détails de la manip pour ceux/celles qui en aurait besoin :

  • Dans le fichier /home/votreutilisateur/Geotrek-rando/.env , changer la ligne IMAGE=ghcr.io/geotrekce/geotrek-rando-v3/geotrek-rando:latest par IMAGE=ghcr.io/geotrekce/geotrek-rando-v3/geotrek-rando:v3.8.5
  • puis dans le dossier Geotrek-Rando : entrez cette commande : docker-compose pull && docker-compose down && docker-compose up -d

@IdrissaD
Copy link

J'ai proposé à l'OT qui m'a fait remonter le problème de changer le nom de la rando, mais ils l'ont déjà utilisé cet url (et d'autres) pour faire des QRCode pour un guide papier. Est-ce qu'une redirection s'impose dans ce genre de situation ?

Je rebondis sur ça vu que ça peut servir à d'autres : dans GTRv3 la seule partie indispensable de l'URL c'est l'id, tout ce que tu peux mettre après est cosmétique. Du coup aucun problème pour changer le nom des itinéraires : tant que l'id ne change pas, les anciennes URL renverront bien vers l'itinéraire actuel.

Exemple :
https://rando.tourisme-pyrenees-mediterranee.fr/trek/14539-(E-12-Sentier-Littoralguide-2022)-Reserve-Naturelle-du-Mas-Larrieu---Le-Racou
https://rando.tourisme-pyrenees-mediterranee.fr/trek/14539
https://rando.tourisme-pyrenees-mediterranee.fr/trek/14539-(E-12-Sentier-Li
https://rando.tourisme-pyrenees-mediterranee.fr/trek/14539-blabla---fezfzefcezbn'"t"'r'"cfeéc

@mviadere-openig
Copy link
Contributor Author

Oooooh ! Bien vu, je n'étais pas du tout au courant pour ce fonctionnement, merci !

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Jul 20, 2022

Bon OK, on vient de capter.

Les services ont un fonctionnement un peu particulier.
On ne publie pas les services un par un, mais on publie les types de services.

Dans ton cas @mviadere-openig, mais aussi @noelmartinon, vous avez des services associés à des types de service non publiés.

Donc la route /service/ renvoie tous les services saisis, mais pas leurs types de services, car ceux-ci ne sont pas publiés.
Donc ce n'est pas vraiment un bug, mais simplement le fait qu'il faut que vous publiez les types de services pour qu'ils remontent dans la route /service_type/.

image

Il est possible que la modification ne soit pas prise en compte directement par Geotrek-rando-v3, car celui-ci garde en cache le contenu de certaines routes de l'API pour pas les interroger en permanence.
Pour vider le cache serveur de Geotrek-rando-v3 et que la publication des types de services dans Geotrek-admin soit pris en compte, il faut certainement que vous redémarriez le Docker de Geotrek-rando-v3 avec "docker-compose restart".

Cependant, pour éviter aux autres de passer à côté de cette nuance et être plus cohérent, une évolution va être faite dans la prochaine version de Geotrek-admin pour que la route des services ne renvoie que les services dont le type est publié.
Le soucis sera ainsi évité.

@camillemonchicourt
Copy link
Member

Filtrage de la route /service/ de l'API de Geotrek-admin pour ne renvoyer que les services dont le type de service est publié : https://github.com/GeotrekCE/Geotrek-admin/pull/3182/files

@noelmartinon
Copy link

Bien vu et merci @camillemonchicourt, ça patch nickel pour moi sur la 3.10.2 ! Plus d'erreur 500 comme j'avais indiqué sur le #718.

@mviadere-openig
Copy link
Contributor Author

Super Camille, merci pour ces retours, je peux donc mettre à jour mes gtk-rando. Je clos l'issue.

@camillemonchicourt
Copy link
Member

Oui et la version 2.85.0 de Geotrek-admin fait désormais en sorte de ne diffuser que les services dont le type est publié, donc ce soucis ne pourra plus se produire.

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

No branches or pull requests

4 participants