Projet

Général

Profil

Bug #6247

"psycopg2.InternalError: cache lookup failed for relation xxxx" lors du drop_views

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
06 janvier 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

Trace reçue lors d'une modif d'un formulaire par Victor sur FSB (mais je n'ai pas réussi à reproduire l'erreur...) :

Exception:
  type = '<class 'psycopg2.InternalError'>', value = 'cache lookup failed for relation 21985
'

Stack trace (most recent call first):
  File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 414, in drop_views
   412
   413     for view_name in view_names:
>  414         cur.execute('''DROP VIEW IF EXISTS %s''' % view_name)
   415
   416     cur.execute('''DROP VIEW IF EXISTS wcs_all_forms''')

  locals:
     cur = <cursor object at 0x2fab528; closed: 0>
     view_names = ['wcs_category_tourisme', 'wcs_category_enfance_jeunesse', 'wcs_category_etat_civil', 'wcs_category_services_techni
ques']
     formdef = <FormDef 'signaler un probl\xc3\xa8me' id:11>
     view_name = 'wcs_category_tourisme'
     conn = <connection object at 0x2fefb40; dsn: 'dbname=wcs_fsb_test_au_quotidien_com', closed: 0>
     row = None

  File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 244, in f
   242         except psycopg2.Error:
   243             get_connection().rollback()
>  244             raise
   245     return f
   246

  locals:
     args = (<FormDef 'signaler un probl\xc3\xa8me' id:11>,)
     func = <function drop_views at 0x3205488>
     kwargs = {}

  File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 331, in do_formdef_tables
   329         # views may have been dropped when dropping columns, so we recreate
   330         # them even if not asked to.
>  331         drop_views(formdef)
   332         do_views(formdef)
   333

(...)

Je ne sais pas interpréter le "cache lookup failed for relation ..."


Fichiers

Historique

#2

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

À la seconde de la trace, il y a deux POST sur des formdefs.

212.94.190.230 - - [06/Jan/2015:11:22:12 +0100] "POST /admin/forms/9/fields/21/ HTTP/1.1" 302 757 "https://fsb.test.au-quotidien.com/admin/forms/9/fields/21/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" 
212.94.190.230 - - [06/Jan/2015:11:22:12 +0100] "POST /admin/forms/11/fields/new HTTP/1.1" 500 9299 "https://fsb.test.au-quotidien.com/admin/forms/11/fields/" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" 
#3

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

Sous entendu, tu imagines une sort d'accès "concurrent" problématique ?

#4

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

C'est vers ça que des commentaires dans le second lien donné pointaient. ("I don't think we are doing that, but it may be that two queries are
attempting to drop the same table "if exists".")

#5

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

  • Statut changé de Nouveau à En cours

Selon les échanges cités, c'est un soucis qui pourrait disparaître en pg>9.3. Fred si tu lis la même chose, je propose de mettre ce ticket en prio basse. Quand jessie sera sortie, on fermera gentilment...

#6

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

La correction est théorique, on n'a pas de tests d'exécutions parallèles.

#7

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

Ack ; un peu de transactions plus explicites ça ne peut pas faire de mal.

#8

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

  • Statut changé de En cours à Résolu (à déployer)
commit cb074d737f4de388a98c5a8dff267d1edc45f0a7
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon Jan 12 21:33:37 2015 +0100

    sql: drop and create views in a single transaction (#6247)
#9

Mis à jour par Thomas Noël il y a presque 9 ans

  • Statut changé de Résolu (à déployer) à En cours

Juste pour dire que ca n'est pas corrigé (mais que je pense que c'est parce que postgresql 9.1, donc sera corrigé à l'upgrade jessie)

Exception:
  type = '<class 'psycopg2.InternalError'>', value = 'cache lookup failed for relation 411846
'

Stack trace (most recent call first):
  File "/usr/lib/python2.7/dist-packages/wcs/sql.py", line 594, in drop_global_views
   592
   593     for view_name in view_names:
>  594         cur.execute('''DROP VIEW IF EXISTS %s''' % view_name)
   595
   596     cur.execute('''DROP VIEW IF EXISTS wcs_all_forms''')

lié à deux accès simultané (dont on pourrait chercher la cause, aussi):

192.168.44.1 - - [03/Jul/2015:15:47:38 +0200] "GET /backoffice/forms/152/fields/14/delete HTTP/1.0" 200 626 "https://demo.dev.au-quotidien.com/backoffice/forms/152/fields/" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0" 
192.168.44.1 - - [03/Jul/2015:15:47:38 +0200] "GET /backoffice/forms/152/fields/14/delete HTTP/1.0" 500 671 "https://demo.dev.au-quotidien.com/backoffice/forms/152/fields/" "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:38.0) Gecko/20100101 Firefox/38.0" 
#10

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

  • Assigné à Frédéric Péters supprimé
  • Patch proposed changé de Oui à Non
#11

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

  • Statut changé de En cours à Fermé

postgresql 9.1, donc sera corrigé à l'upgrade jessie

Ça a été fait :)

Formats disponibles : Atom PDF