Re: We need to log aborted autovacuums - Mailing list pgsql-hackers

From Robert Haas
Subject Re: We need to log aborted autovacuums
Date
Msg-id AANLkTik-e_ttzsXThWg5Nb0J-m=PXbjFK_peGuay-nHi@mail.gmail.com
Whole thread Raw
In response to Re: We need to log aborted autovacuums  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: We need to log aborted autovacuums  (Alvaro Herrera <alvherre@commandprompt.com>)
List pgsql-hackers
On Mon, Jan 17, 2011 at 4:08 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> Simon Riggs <simon@2ndQuadrant.com> writes:
>> On Mon, 2011-01-17 at 14:46 -0500, Tom Lane wrote:
>>> Do we actually need a lock timeout either?  The patch that was being
>>> discussed just involved failing if you couldn't get it immediately.
>>> I suspect that's sufficient for AV.  At least, nobody's made a
>>> compelling argument why we need to expend a very substantially larger
>>> amount of work to do something different.
>
>> I have a patch to do this BUT the log message is harder. Until we grab
>> the lock we can't confirm the table still exists, so we can't get the
>> name for it. The whole point of this is logging the names of tables for
>> which we have failed to AV. Suggestions?
>
> As I said before, the correct place to fix this is in autovacuum.c,
> which has the table name near at hand.  If you insist on fixing it
> somewhere else it's going to be very invasive.

Unless I'm missing something, making autovacuum.c call
ConditionalLockRelationOid() is not going to work, because the vacuum
transaction isn't started until we get all the way down to
vacuum_rel().  But it seems not too hard to make vacuum_rel() and
analyze_rel() have the proper relation name - we just need to
manufacture a suitable RangeVar to pass via the VacuumStmt's
"relation" element.

See what you think of the attached...  I think logging this message at
LOG unconditionally is probably log spam of the first order, but if
the basic concept is sound we can argue over what to do about that.

--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Error code for "terminating connection due to conflict with recovery"
Next
From: Fujii Masao
Date:
Subject: Re: Include WAL in base backup