Re: [Pgsql-ayuda] Consulta por error

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Ricardo Mercado Araneda <rmercado(at)dportales(dot)cl>
Cc: pgsql-ayuda(at)tlali(dot)iztacala(dot)unam(dot)mx
Subject: Re: [Pgsql-ayuda] Consulta por error
Date: 2003-08-21 14:35:33
Message-ID: 20030821143533.GA2939@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Thu, Aug 21, 2003 at 10:03:33AM -0400, Ricardo Mercado Araneda wrote:

Ricardo,

> Al hacer un insert en una de las tablas de mi modelo me aparece el
> siguiente error: "deadlock detected"
>
> Al revisar la tabla me encuentro que igual se hizo el insert, pero de
> todas maneras estoy preocupado por este tema. Si alguien sabe de que
> trata esto, ruego me orientes. Gracias

Se detecta un deadlock, es decir, dos transacciones están tratando de
obtener un lock que la otra tiene. Un ejemplo trivial sería
TRANS1 TRANS2
BEGIN;
BEGIN;
LOCK TABLE a;
LOCK TABLE b;
LOCK TABLE b;
LOCK TABLE a;
-- error: deadlock detected
ROLLBACK;
-- hacer algo util
COMMIT;

Aqui la transaccion 2 no se completa, pero la 1 sí. Nota que pasa como
1 segundo desde que ejecutas el "LOCK TABLE a" en trans2 hasta que se
detecta el deadlock (esto es configurable, IIRC).

Ciertamente es algo por lo cual deberias preocuparte :-) porque hay una
transaccion que no se está completando.

Revisa por qué se producen los deadlocks y trata de evitarlos, (por ej.
obteniendo los locks siempre en el mismo orden -- ojo que las
operaciones que involucran llaves foraneas obtienen locks
implicitamente). Te puede servir echarle una mirada a pg_locks (o
pg_lock, no recuerdo).

--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
La web junta la gente porque no importa que clase de mutante sexual seas,
tienes millones de posibles parejas. Pon "buscar gente que tengan sexo con
ciervos incendiánse", y el computador dirá "especifique el tipo de ciervo"
(Jason Alexander)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2003-08-21 15:16:51 Re: [Pgsql-ayuda] google y esta lista
Previous Message Ricardo Mercado Araneda 2003-08-21 14:03:33 [Pgsql-ayuda] Consulta por error