Projet

Général

Profil

Bug #75580

RecursionError: maximum recursion depth exceeded while calling a Python object

Ajouté par Sentry Io il y a environ un an. Mis à jour il y a environ un an.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
17 mars 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

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

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 0: invalid start byte
  File "django/utils/encoding.py", line 62, in force_str
    s = str(s, encoding, errors)

DjangoUnicodeDecodeError: 'utf-8' codec can't decode byte 0x91 in position 0: invalid start byte. You passed in b'\x91\xb2\xfe\xe7\xc9\xd5\xa0\x01\xf0\xc9[\xfd\xdc\x19\x8e\xed\xc3\xc79\xdd\x00gn\x1d' (<class 'bytes'>)
(3 additional frame(s) were not displayed)
...
  File "django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "django/views/generic/base.py", line 159, in get
    context = self.get_context_data(**kwargs)
  File "combo/apps/lingo/views.py", line 828, in get_context_data
    item_id = aes_hex_decrypt(settings.SECRET_KEY, kwargs['item_crypto_id'])
  File "combo/utils/crypto.py", line 57, in aes_hex_decrypt
    return force_str(aes.decrypt(crypted), 'utf-8')
  File "django/utils/encoding.py", line 66, in force_str
    raise DjangoUnicodeDecodeError(s, *e.args)

AttributeError: 'SessionStore' object has no attribute '_session_cache'
  File "django/contrib/sessions/backends/base.py", line 233, in _get_session
    return self._session_cache

BadSignature: Signature "oYGUcdxMsgOpes15UGKPrcmow2YNv258VGavSLf5ZfA" does not match
  File "django/contrib/sessions/backends/base.py", line 121, in decode
    return signing.loads(session_data, salt=self.key_salt, serializer=self.serializer)
  File "django/core/signing.py", line 119, in loads
    return TimestampSigner(key, salt=salt).unsign_object(s, serializer=serializer, max_age=max_age)
  File "django/core/signing.py", line 190, in unsign_object
    base64d = self.unsign(signed_obj, **kwargs).encode()
  File "django/core/signing.py", line 215, in unsign
    result = super().unsign(value)
  File "django/core/signing.py", line 160, in unsign
    raise BadSignature('Signature "%s" does not match' % sig)

Error: Incorrect padding
  File "django/contrib/sessions/backends/base.py", line 128, in decode
    return self._legacy_decode(session_data)
  File "django/contrib/sessions/backends/base.py", line 144, in _legacy_decode
    encoded_data = base64.b64decode(session_data.encode('ascii'))
  File "base64.py", line 87, in b64decode
    return binascii.a2b_base64(s)

AttributeError: 'SessionStore' object has no attribute '_session_cache'
  File "django/contrib/sessions/backends/base.py", line 233, in _get_session
    return self._session_cache

BadSignature: Signature "oYGUcdxMsgOpes15UGKPrcmow2YNv258VGavSLf5ZfA" does not match
  File "django/contrib/sessions/backends/base.py", line 121, in decode
    return signing.loads(session_data, salt=self.key_salt, serializer=self.serializer)
  File "django/core/signing.py", line 119, in loads
    return TimestampSigner(key, salt=salt).unsign_object(s, serializer=serializer, max_age=max_age)
  File "django/core/signing.py", line 190, in unsign_object
    base64d = self.unsign(signed_obj, **kwargs).encode()
  File "django/core/signing.py", line 215, in unsign
    result = super().unsign(value)
  File "django/core/signing.py", line 160, in unsign
    raise BadSignature('Signature "%s" does not match' % sig)

...

Historique

#1

Mis à jour par Corentin Séchet il y a environ un an

  • Projet changé de Suivi des traces à Hobo
  • Description mis à jour (diff)

Si on change le paramètre SECRET_KEY, accéder à une page avec une session construite avec l'ancienne clé fait crasher Hobo.

Formats disponibles : Atom PDF