Projet

Général

Profil

Bug #53521

crash sur réponse geojson invalide

Ajouté par Sentry Io il y a presque 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
28 avril 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/40697/

JSONDecodeError: Expecting value: line 1 column 1 (char 0)
(6 additional frame(s) were not displayed)
...
  File "combo/apps/maps/models.py", line 230, in get_geojson
    data = response.json()
  File "requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None

Fichiers

Révisions associées

Révision ea21ad5b (diff)
Ajouté par Lauréline Guérin il y a presque 3 ans

map: don't fail on invalid geojson data (#53521)

Historique

#1

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Projet changé de Suivi des traces à Combo
  • Sujet changé de JSONDecodeError: Expecting value: line 1 column 1 (char 0) à crash sur réponse geojson invalide

Requête vers https://places-parkings.quimper-communaute.bzh/WebServiceInfosGeolocFront.asmx/GetGeoJsonListDysplayItemByType?type=retraitsmasques qui retourne ces jours-ci une réponse vide.

En cas de réponse invalide, on devrait sans doute juste ignorer. (marquer les cellules qui utilisent cette couche carto comme invalides ça me semble compliqué, faut s'assurer qu'il n'y ait pas d'autre couche configurée etc.).

#2

Mis à jour par Lauréline Guérin il y a presque 3 ans

  • Assigné à mis à Lauréline Guérin
#3

Mis à jour par Lauréline Guérin il y a presque 3 ans

return [] comme en cas de mauvais status_code

Ca a l'air de fonctionner, mais ça serait pas mieux de renvoyer {'type': 'FeatureCollection', 'features': []} ?

#4

Mis à jour par Thomas Noël il y a presque 3 ans

Lauréline Guerin a écrit :

Ca a l'air de fonctionner, mais ça serait pas mieux de renvoyer {'type': 'FeatureCollection', 'features': []} ?

Yep. Et je n'ai pas regardé la norme GeoJSON mais si on avait l'espace pour ajouter un log/commentaire ça serait bien d'y dire "je ne dirais pas que c'est un échec mais ça n'a pas marché, et donc c'est vide" (qu'on pourrait ainsi apercevoir via F12)

#5

Mis à jour par Thomas Noël il y a presque 3 ans

Thomas Noël a écrit :

Lauréline Guerin a écrit :

Ca a l'air de fonctionner, mais ça serait pas mieux de renvoyer {'type': 'FeatureCollection', 'features': []} ?

Yep. Et je n'ai pas regardé la norme GeoJSON mais si on avait l'espace pour ajouter un log/commentaire ça serait bien d'y dire "je ne dirais pas que c'est un échec mais ça n'a pas marché, et donc c'est vide" (qu'on pourrait ainsi apercevoir via F12)

A priori on pourrait se permettre, selon https://tools.ietf.org/html/rfc7946#section-6 :

{'type': 'FeatureCollection', 'features': [], '_combo_err_desc': "l'URL interrogé n'a pas renvoyé un document JSON"}

#7

Mis à jour par Thomas Noël il y a presque 3 ans

  • Statut changé de Solution proposée à Solution validée
#8

Mis à jour par Lauréline Guérin il y a presque 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit ea21ad5b00548d24023d91eaa081572006f78bd6
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Thu Apr 29 09:45:32 2021 +0200

    map: don't fail on invalid geojson data (#53521)
#9

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF