Re: Lock problem - Mailing list pgsql-general

From Victor Sterpu
Subject Re: Lock problem
Date
Msg-id em2eb47971-88dd-460f-9ad7-d17f5599378f@victor-pc
Whole thread Raw
In response to Re: Lock problem  ("Victor Sterpu" <victor@caido.ro>)
Responses Re: Lock problem  (Igor Neyman <ineyman@perceptron.com>)
List pgsql-general
I'm sure is not right, but is a there a server side solution for such
sitations?
A configuration - timeout for idle transactions.

------ Original Message ------
From: "Victor Sterpu" <victor@caido.ro>
To: "Victor Sterpu" <victor@caido.ro>; "Merlin Moncure"
<mmoncure@gmail.com>
Cc: "PostgreSQL General" <pgsql-general@postgresql.org>
Sent: 4/2/2014 9:13:22 PM
Subject: Re[2]: [GENERAL] Lock problem

>There may pass a few days or weeks until next lock.
>But I don't undesrtand why the whole table is locked if there is one
>uncommited transaction.
>
>The following scenario might be the cause:
>1. Transaction is started
>2. the client application is closed because of a power surge, the
>started transaction will never be commited
>3. from the server point of view there is a unfinished transaction that
>will block future statements
>
>Is this normal behaviour?
>
>
>------ Original Message ------
>From: "Victor Sterpu" <victor@caido.ro>
>To: "Merlin Moncure" <mmoncure@gmail.com>
>Cc: "PostgreSQL General" <pgsql-general@postgresql.org>
>Sent: 4/2/2014 7:19:06 PM
>Subject: Re: [GENERAL] Lock problem
>
>>I followed all your advice and it is obiuos that this log will show
>>exactly what I need to debug the situation.
>>Great tip, thank you.
>>
>>------ Original Message ------
>>From: "Merlin Moncure" <mmoncure@gmail.com>
>>To: "Victor Sterpu" <victor@caido.ro>
>>Cc: "PostgreSQL General" <pgsql-general@postgresql.org>
>>Sent: 4/2/2014 7:08:08 PM
>>Subject: Re: [GENERAL] Lock problem
>>
>>>On Wed, Apr 2, 2014 at 11:00 AM, Victor Sterpu <victor@caido.ro>
>>>wrote:
>>>>  All my transactions have commit or rollback.
>>>
>>>Well, you have to verify that. There's a couple of ways to do it.
>>>Probably the most direct is to:
>>>1. Make sure database is logging pids in log_line_prefix (this is a
>>>good idea all around)
>>>2. turn on all statement logging (be advised: this can eat a lot of
>>>log space and slow down the server).
>>>
>>>Those two changes do not require a restart. A pg_ctl reload should
>>>be sufficient.
>>>
>>>Once you can do that, you should be able to locate database sessions
>>>per pg_stat_activity that are 'idle in transaction' for a long time
>>>without activity (anything over a second or so should be suspicious).
>>>That will give the pid which you can then use to grep through the
>>>statement log.
>>>
>>>Common culprits are:
>>>*) Dubious connection pooling solutions (php pconnect comes to mind)
>>>*) Bad error handling logic in application (say, badly handled thrown
>>>exception)
>>>
>>>merlin
>>
>>
>>
>>-- Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
>>To make changes to your subscription:
>>http://www.postgresql.org/mailpref/pgsql-general
>



pgsql-general by date:

Previous
From: "Victor Sterpu"
Date:
Subject: Re: Lock problem
Next
From: Bala Venkat
Date:
Subject: pg_stat_activity