From: | Carlos Camilo Fernández Madrazo <kmilo(at)xetid(dot)cu> |
---|---|
To: | pgsql-es-ayuda(at)lists(dot)postgresql(dot)org |
Subject: | Interbloqueo |
Date: | 2018-06-01 20:59:44 |
Message-ID: | 1785909418.73935097.1527886784065.JavaMail.zimbra@xetid.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola, yo utilizo postgresql en su versión 9.5 y tengo un problema con una aplicación que está generando un interbloqueo, las sentencias invlocradas están identificadas en el código de mi aplicación y es imprescindible su ejecución de esa forma. En los logs adjuntos de postgresql se puede ver que la línea con PID [21596-8] ejecuta un SELECT sobre la tabla dat-accion y luego en la línea con PID [21595-10] se intenta eliminar un trigger asociado a esta misma tabla, en este punto la conexión con PID 21595 se queda en estado 'DROP TRIGGER waiting' y la conexión con PID 21596 se queda 'idle in transaction' (esto lo puedo observar en los procesos del sistema operativo Ubuntu 16.04). Esta situación se queda infinitamente si no mato el proceso y sucede siempre que llevo a cabo en mi aplicación las acciones que desencadenan la ejecución de las sentencias antes mencionadas.
Haciéndole la consulta que se muestra debajo a pg_stat_activity y a pg_locks para ver los bloqueos aplicados por postgresql sobre la tabla dat_accion se puede ver que existe un bloqueo de tipo "AccessExclusiveLock", que según tengo entendido, entra en conflicto con el bloqueo "AccessShareLock".
Alguna idea de por qué ocurre y cómo puedo resolver este problema?
Saludos
SELECT pg_class.relname,
pg_locks.mode,
pg_stat_activity.query,
age(now(),pg_stat_activity.query_start) as "age",
pg_stat_activity.pid
FROM pg_stat_activity, pg_locks
LEFT OUTER JOIN pg_class ON (pg_locks.relation = pg_class.oid)
WHERE pg_locks.pid=pg_stat_activity.pid
AND pg_stat_activity.datname = 'proyecto'
AND pg_class.relname = 'dat_accion'
ORDER BY age DESC;
relname mode query age pid
"dat_accion" "AccessShareLock" "DEALLOCATE pdo_stmt_00000003" "00:18:00.830715" 21596
"dat_accion" "AccessShareLock"
"00:18:00.825623" 21595
"dat_accion" "AccessExclusiveLock"
"00:18:00.825623" 21595
Attachment | Content-Type | Size |
---|---|---|
postgresql-9.5-main.log | text/x-log | 6.0 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Martín Marqués | 2018-06-02 01:38:02 | Re: Interbloqueo |
Previous Message | Johannes Graën | 2018-06-01 18:11:08 | Re: [MASSMAIL]Re: pgpool |