Interbloqueo

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

Responses

Browse pgsql-es-ayuda by date

  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