Re: Patch: show relation and tuple infos of a lock to acquire

From: Simon Riggs <simon(at)2ndQuadrant(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Christian Kruse <christian(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Patch: show relation and tuple infos of a lock to acquire
Date: 2013-12-31 17:06:55
Message-ID: CA+U5nMJ34My-EoXsT+Z90faB0O0K9HdT6iWDZRzfp22Ry4i_Vw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 31 December 2013 16:36, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Simon Riggs <simon(at)2ndQuadrant(dot)com> writes:
>> On 31 December 2013 09:12, Christian Kruse <christian(at)2ndquadrant(dot)com> wrote:
>>> Output with patch:
>>>
>>> LOG: process 24774 acquired ShareLock on transaction 696 after 11688.720 ms
>>> CONTEXT: relation name: foo (OID 16385)
>>> tuple (ctid (0,1)): (1)
>
>> That is useful info.
>
>> I think the message should be changed to say this only, without a context line
>
>> LOG: process 24774 acquired ShareLock on relation "foo" (OID 16385)
>> tuple (0,1) after 11688.720 ms
>
>> My reason is that pid 24774 was waiting for a *tuple lock* and it was
>> eventually granted, so thats what it should say.
>
> No, that wasn't what it was waiting for, and lying to the user like that
> isn't going to make things better.

"Like that" is ambiguous and I don't understand you or what you are
objecting to.

When we run SELECT ... FOR SHARE we are attempting to lock rows. Why
is the transaction we are waiting for important when we wait to lock
rows, but when we wait to lock relations it isn't?

--
Simon Riggs http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2013-12-31 17:20:00 Re: fix_PGSTAT_NUM_TABENTRIES_macro patch
Previous Message Tom Lane 2013-12-31 16:36:36 Re: Patch: show relation and tuple infos of a lock to acquire