Project

General

Profile

Bug #71963

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

Added by Thomas Noël 2 months ago. Updated about 2 months ago.

Status:
Solution déployée
Priority:
Normal
Assignee:
Target version:
-
Start date:
02 December 2022
Due date:
% Done:

0%

Estimated time:
Patch proposed:
Yes
Planning:
No

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.


Files

Associated revisions

Revision 07ad91b4 (diff)
Added by Thomas Noël about 2 months ago

dataviz: ignore bad statistics provider result (#71963)

History

#2

Updated by Thomas Noël 2 months ago

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

#3

Updated by Paul Marillonnet about 2 months ago

  • Status changed from Solution proposée to 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

Updated by Valentin Deniaud about 2 months ago

  • Assignee set to 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

Updated by Thomas Noël about 2 months ago

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

#6

Updated by Valentin Deniaud about 2 months ago

  • Status changed from Solution proposée to Solution validée
#7

Updated by Thomas Noël about 2 months ago

  • Status changed from Solution validée to 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

Updated by Transition automatique about 2 months ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF