Projet

Général

Profil

Bug #71963

json.decoder.JSONDecodeError lors d'un un update_available_statistics()

Ajouté par Thomas Noël il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
02 décembre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Cette trace vue dans des résultats de cron :

combo.apps.dataviz: error: Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/combo/data/management/commands/cron.py", line 48, in handle
    appconfig.hourly()
  File "/usr/lib/python3/dist-packages/combo/apps/dataviz/__init__.py", line 34, in hourly
    update_available_statistics()
  File "/usr/lib/python3/dist-packages/combo/apps/dataviz/utils.py", line 34, in update_available_statistics
    result = response.json()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 900, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Certainement parce que le response.json() contient tout autre chose que du JSON, il faudrait lever quelque chose de plus clair.


Fichiers

Révisions associées

Révision 07ad91b4 (diff)
Ajouté par Thomas Noël il y a plus d'un an

dataviz: ignore bad statistics provider result (#71963)

Historique

#2

Mis à jour par Thomas Noël il y a plus d'un an

On ignore déjà silencieusement les réponses non 200, j'ai pas fait mieux.

#3

Mis à jour par Paul Marillonnet il y a plus d'un an

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

Peut-être une ligne de log de niveau débug qui indique que le fournisseur envoie des trucs pas propres ? Sinon ok pour moi.

#4

Mis à jour par Valentin Deniaud il y a plus d'un an

  • Assigné à mis à Thomas Noël

J'ai noté l'explication technique ici #71962#note-4, donc le patch pour supprimer les traces aurait pu être l'ajout d'un allow_redirects=False au requests.get() puis ignorer cette 302 (même résultat mais c'est peut-être faire les choses moins à l'aveugle et continuer à avoir des traces si on reçoit autre chose que du json, m'enfin c'est du détail le patch ici me va).

#5

Mis à jour par Thomas Noël il y a plus d'un an

J'aime bien ce allow_redirects=False et donc voici une version ceinture et bretelles.

#6

Mis à jour par Valentin Deniaud il y a plus d'un an

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

Mis à jour par Thomas Noël il y a plus d'un an

  • Statut changé de Solution validée à Résolu (à déployer)
commit 07ad91b49b97ae54976360860750b967fe1b51b3
Author: Thomas NOEL <tnoel@entrouvert.com>
Date:   Fri Dec 2 11:35:38 2022 +0100

    dataviz: ignore bad statistics provider result (#71963)

#8

Mis à jour par Transition automatique il y a plus d'un an

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

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF