Bug #53839
doublon de clé tech_id sur logged error
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
Historique
Mis à jour par Lauréline Guérin il y a presque 3 ans
- Fichier 0001-logged-errors-fix-integrity-error-on-tech_id-53839.patch 0001-logged-errors-fix-integrity-error-on-tech_id-53839.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
j'ai déplacé de la logique dans la méthode store, pour éviter de gérer des IntegrityError en dehors du module sql
Mis à jour par Frédéric Péters il y a presque 3 ans
- Statut changé de Solution proposée à Solution validée
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)
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
logged errors: fix integrity error on tech_id (#53839)