Projet

Général

Profil

Bug #26306

crash KeyError sur draft plus trouvé

Ajouté par Thomas Noël il y a plus de 5 ans. Mis à jour il y a plus de 5 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
11 septembre 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Suite de #25266, dans submissions.py

Exception:
  type = '<type 'exceptions.KeyError'>', value = ''

Stack trace (most recent call first):
  File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 965, in get
   963             if ignore_errors:
   964                 return None
>  965             raise KeyError()
   966         cur.close()
   967         return cls._row2ob(row)

  locals:
     cls = <class 'wcs.sql.TrackingCode'>
     conn = <connection object at 0x7f9a8a3f0d70; dsn: 'dbname=xxxx', closed: 0>
     cur = <cursor object at 0x7f9a5a554620; closed: -1>
     id = 'xxx'
     ignore_errors = False
     ignore_migration = False
     row = None
     sql_statement = 'SELECT id, formdef_id, formdata_id\n                             FROM tracking_codes\n                            WHERE id = %(id)s'
     x = ('formdata_id', 'varchar')

  File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 342, in f
   340         except psycopg2.Error:
   341             get_connection().rollback()
>  342             raise
   343     return f
   344

  locals:
     args = (<class 'wcs.sql.TrackingCode'>, 'xxx')
     func = <function get at 0x7f9a8bfd4230>
     kwargs = {}

  File "/usr/lib/python2.7/dist-packages/wcs/backoffice/submission.py", line 71, in _q_lookup
    69
    70         if formdata.tracking_code:
>   71             tracking_code = get_publisher().tracking_code_class.get(formdata.tracking_code)
    72             tracking_code.remove_self()
    73         formdata.remove_self()

  locals:
     component = '14649'
     form = <qommon.form.Form object at 0x7f9a82ccdd90>
     formdata = <Demande-xxxx id:14649>
     self = <wcs.backoffice.submission.RemoveDraftDirectory object at 0x7f9a8a726fd0>

  File "/usr/lib/pymodules/python2.7/quixote/directory.py", line 57, in _q_traverse
    55             obj = getattr(self, name)
    56         else:
>   57             obj = self._q_lookup(component)
    58         if obj is None:
    59             raise TraversalError(private_msg=('directory %r has no component '


Fichiers

Historique

#1

Mis à jour par Thomas Noël il y a plus de 5 ans

et comme sur #25266, je ne saisi pas bien comment c'est possible, sauf peut-être un clic sur "remove" alors que le tracking_code n'existe pas encore mais je ne peux y croire, bref, voilà mon hotfix à l'aveugle

#2

Mis à jour par Frédéric Péters il y a plus de 5 ans

Tu me refuses ce ~patch dans #24644.

#3

Mis à jour par Thomas Noël il y a plus de 5 ans

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

Frédéric Péters a écrit :

Tu me refuses ce ~patch dans #24644.

Zarma.

Formats disponibles : Atom PDF