Projet

Général

Profil

Development #86346

Mis à jour par Benjamin Dauvergne il y a 3 mois

On a régulièrement des traces sentry de ce type[1]:
<pre>
HTTPSConnectionPool(host='demarches.ville-sens.fr', port=443): Read timed out. (read timeout=10)

ReadTimeout: HTTPSConnectionPool(host='demarches.ville-sens.fr', port=443): Read timed out. (read timeout=10)
File "threading.py", line 892, in run
self._target(*self._args, **self._kwargs)
File "hobo/context_processors.py", line 116, in update_content
r = requests.get(
File "requests/api.py", line 76, in get
return request('get', url, params=params, **kwargs)
File "requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "requests/sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "requests/sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "requests/adapters.py", line 529, in send
raise ReadTimeout(e, request=request)
</pre>
qui ne nous apporte pas grand choses à part du bruit.

De plus je pense que le cache ne fonctionne pas comme il devrait, on a:
<pre>
hobo/context_processors.py:CACHE_REFRESH_TIMEOUT = 300
</pre>
mais le timeout par défaut dans Django est aussi 300:
<pre>
bdauvergne@front1.prod:~$ sudo -u authentic-multitenant authentic2-multitenant-manage shell
Enter Tenant Domain ('?' to list): 1
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.20.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from django.core.cache import caches

In [2]: caches['default']
Out[2]: <hobo.multitenant.cache.TenantMemcachedCache at 0x7fbda6c547f0>

In [3]: caches['default'].default_timeout
Out[3]: 300
</pre>

Je propose d'augmenter le TTL du cache à 2 heures, d'augmenter le timeout dans
le thread à 30 secondes et
de ne lever une erreur que si ça fait plus d'1 heure
qu'une mise à jour n'a pas eu lieu.

fn1. https://sentry.entrouvert.org/entrouvert/publik/issues/113170/

Retour