GeotrekCE / Geotrek-rando-v3

Geotrek public data website (version 3)
MIT License
16 stars 16 forks source link

Erreur sur certains événements "no attribute 'render'" #941

Open noelmartinon opened 1 year ago

noelmartinon commented 1 year ago

Geotrek : 2.98.1

Je reçois des messages "Internal Server Error" de certains évènement m'indiquant 'HttpResponse' object has no attribute 'render'. Pourtant les évènements s'affichent correctement y compris dans rando. Par exemple :

Y aurait-il un champ obligatoire à renseigner ? Autre ?

babastienne commented 1 year ago

Pourriez-vous donner plus d'informations concernant le message d'erreur obtenu et son contexte d'apparition ?

noelmartinon commented 1 year ago

L'origine de la requête est rando et le message est "OGR failure". Je me rends compte que ça se produit également avec trek.

Extrait d'un message reçu :

Internal Server Error: /api/v2/touristicevent/

GDALException at /api/v2/touristicevent/
OGR failure.

Request Method: GET
Request URL: https://geotrek.guadeloupe-parcnational.fr/api/v2/touristicevent/?language=fr&page_size=10&page=1&dates_before=&dates_after=&types=2&in_bbox=-348.75000000000006,-88.94504236931593,630.0000000000001,89.99802987138087&fields=id,attachments,name,geometry,themes,cities,type,begin_date,end_date,approved
Django Version: 3.2.18
Python Executable: /opt/geotrek-admin/bin/python
Python Version: 3.8.10
Python Path: ['/', '/', '/opt/geotrek-admin/bin', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload', '/opt/geotrek-admin/lib/python3.8/site-packages']
Server time: Thu, 13 Jul 2023 10:14:27 -0400
...
Traceback (most recent call last):
  File "/opt/geotrek-admin/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework/viewsets.py", line 125, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework/mixins.py", line 38, in list
    queryset = self.filter_queryset(self.get_queryset())
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework/generics.py", line 150, in filter_queryset
    queryset = backend().filter_queryset(self.request, queryset, self)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/rest_framework_gis/filters.py", line 80, in filter_queryset
    bbox = self.get_filter_bbox(request)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/geotrek/api/v2/filters.py", line 76, in get_filter_bbox
    bbox.transform(settings.SRID)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/django/contrib/gis/geos/geometry.py", line 473, in transform
    g.transform(ct)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/django/contrib/gis/gdal/geometries.py", line 403, in transform
    capi.geom_transform_to(self.ptr, sr.ptr)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/django/contrib/gis/gdal/prototypes/errcheck.py", line 117, in check_errcode
    check_err(result, cpl=cpl)
  File "/opt/geotrek-admin/lib/python3.8/site-packages/django/contrib/gis/gdal/error.py", line 59, in check_err
    raise e(msg)

Exception Type: GDALException at /api/v2/touristicevent/
Exception Value: OGR failure.
Request information:
USER: AnonymousUser

GET:
language = 'fr'
page_size = '10'
page = '1'
dates_before = ''
dates_after = ''
types = '2'
in_bbox = '-348.75000000000006,-88.94504236931593,630.0000000000001,89.99802987138087'
fields = 'id,attachments,name,geometry,themes,cities,type,begin_date,end_date,approved'

POST: No POST data

FILES: No FILES data

COOKIES: No cookie data

META:
HTTP_ACCEPT = 'application/json, text/plain, */*'
HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
HTTP_ACCEPT_LANGUAGE = 'fr,fr-FR;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6'
HTTP_CONNECTION = 'close'
HTTP_HOST = 'geotrek.guadeloupe-parcnational.fr'
HTTP_ORIGIN = 'https://www.randoguadeloupe.gp/'
...
babastienne commented 11 months ago

Il semble que le problème soit lié à la géométrie des contenus. Peut-être faut-il essayer de resaisir leur géométrie et voir si cela corrige le problème ?

dtrucs commented 7 months ago

@noelmartinon ce problème est toujours d'actualité ? Si non, est-il possible d'indiquer ce qui a réglé le problème ?

noelmartinon commented 7 months ago

Le problème existe toujours. Ce n'est pas chaque jour, les derniers remontent au 30/12, 22, 19... Je n'ai pas identifié la source du problème ni ce que fait l'utilisateur pour mener à ça. Par exemple, le 30/12, j'ai reçu cette notification mail en objet Internal Server Error: /api/v2/trek/ :

HTTP_REFERER = 'https://www.randoguadeloupe.gp/'
HTTP_SEC_CH_UA = '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"'
HTTP_SEC_CH_UA_MOBILE = '?0'
HTTP_SEC_CH_UA_PLATFORM = '"Windows"'
HTTP_SEC_FETCH_DEST = 'empty'
HTTP_SEC_FETCH_MODE = 'cors'
HTTP_SEC_FETCH_SITE = 'cross-site'
HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
HTTP_X_FORWARDED_FOR = '****, ****'
HTTP_X_FORWARDED_HOST = 'geotrek.guadeloupe-parcnational.fr'
HTTP_X_FORWARDED_PROTO = 'https'
HTTP_X_FORWARDED_SERVER = 'geotrek.guadeloupe-parcnational.fr'
PATH_INFO = '/api/v2/trek/'
QUERY_STRING = 'language=fr&page_size=10&page=1&districts=2,3,8&in_bbox=-707.3437500000001,-89.7860070747368,642.65625,89.99959045049725&fields=id,departure,name,themes,duration,length_2d,ascent,difficulty,reservation_system,attachments,practice,departure_city'