Projet

Général

Profil

Bug #53839

doublon de clé tech_id sur logged error

Ajouté par Frédéric Péters il y a presque 3 ans. Mis à jour il y a presque 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
07 mai 2021
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Exception:
  type = '<class 'psycopg2.IntegrityError'>', value = 'ERREUR:  la valeur d'une clé dupliquée rompt la contrainte unique « loggederrors_tech_id_key »
DETAIL:  La clé « (tech_id)=(427-257-wscall-exception-502-bad-gateway) » existe déjà.
'

Stack trace (most recent call first):
  File "/usr/lib/python3/dist-packages/wcs/sql.py", line 3005, in store
  3003                 ', '.join(['%%(%s)s' % x for x in column_names]),
  3004             )
> 3005             cur.execute(sql_statement, sql_dict)
  3006             self.id = cur.fetchone()[0]
  3007         else:

  locals:
     column_names = ['tech_id', 'summary', 'formdef_class', 'formdata_id', 'formdef_id', 'workflow_id', 'status_id', 'status_item_id', 'expression', 'expression_type', 'traceback', 'exception_class', 'exception_message', 'occurences_count', 'first_occurence_timestamp', 'latest_occurence_timestamp']
     conn = <connection object at 0x7fc0e32739c8; dsn: 'user=gnm_wcs password=xxx dbname=gnm_demarches_guichet_recette_grandlyon_com host=vip-cut-psql port=9999', closed: 0>
     cur = <cursor object at 0x7fc0e6a9c808; closed: 0>
     self = <wcs.sql.LoggedError object at 0x7fc0e1fe8518>
     sql_dict = {...
     sql_statement = 'INSERT INTO loggederrors (tech_id, summary, formdef_class, formdata_id, formdef_id, workflow_id, status_id, status_item_id, expression, expression_type, traceback, exception_class, exception_message, occurences_count, first_occurence_timestamp, latest_occurence_timestamp)\n                               VALUES (%(tech_id)s, %(summary)s, %(formdef_class)s, %(formdata_id)s, %(formdef_id)s, %(workflow_id)s, %(status_id)s, %(status_item_id)s, %(expression)s, %(expression_type)s, %(traceback)s,
%(exception_class)s, %(exception_message)s, %(occurences_count)s, %(first_occurence_timestamp)s, %(latest_occurence_timestamp)s)\n                               RETURNING id'

  File "/usr/lib/python3/dist-packages/wcs/qommon/substitution.py", line 29, in f
    27             return func(*args, **kwargs)
    28         finally:
>   29             get_publisher().substitutions.invalidate_cache()
    30
    31     return f

  locals:
     args = (<wcs.sql.LoggedError object at 0x7fc0e1fe8518>,)
     func = <function LoggedError.store at 0x7fc0e2710158>
     kwargs = {}

  File "/usr/lib/python3/dist-packages/wcs/sql.py", line 475, in f
   473         except psycopg2.Error:
   474             get_connection().rollback()
>  475             raise
   476
   477     return f

  locals:
     args = (<wcs.sql.LoggedError object at 0x7fc0e1fe8518>,)
     func = <function invalidate_substitution_cache.<locals>.f at 0x7fc0e27101e0>
     kwargs = {}

  File "/usr/lib/python3/dist-packages/wcs/logged_errors.py", line 95, in record
    93         error.occurences_count += 1
    94         error.latest_occurence_timestamp = now()
>   95         error.store()
    96         return error
    97


Fichiers

Révisions associées

Révision 203be870 (diff)
Ajouté par Lauréline Guérin il y a presque 3 ans

logged errors: fix integrity error on tech_id (#53839)

Historique

#1

Mis à jour par Lauréline Guérin il y a presque 3 ans

  • Assigné à mis à Lauréline Guérin
#2

Mis à jour par Lauréline Guérin il y a presque 3 ans

j'ai déplacé de la logique dans la méthode store, pour éviter de gérer des IntegrityError en dehors du module sql

#3

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Solution proposée à Solution validée
#4

Mis à jour par Lauréline Guérin il y a presque 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 203be870d547109cd8d3c149d368d7dfc7cd9e04
Author: Lauréline Guérin <zebuline@entrouvert.com>
Date:   Tue May 11 11:29:26 2021 +0200

    logged errors: fix integrity error on tech_id (#53839)
#5

Mis à jour par Frédéric Péters il y a presque 3 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF