From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: daveg <daveg@sonic.net>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Cc: Greg Stark <gsstark@mit.edu>
Cc: Maxim Boguk <maxim.boguk@gmail.com>
Cc: bricklen@gmail.com
Subject: Re: Re: PD_ALL_VISIBLE flag was incorrectly set happend during repeatable vacuum
Date: Tue, 08 Mar 2011 21:00:14 +0200
Message-ID: <4D767CBE.4030904@enterprisedb.com> (raw)
In-Reply-To: <20110308084956.GE21941@sonic.net>
References: <AANLkTi=xq4SV6jwA7txvrbEWocyeiU6XiTG=-zVy+7Dq@mail.gmail.com>
<AANLkTi=Ye7AoF7_uVQfPVn-ok2VOp65mi0xU3H7kCke3@mail.gmail.com>
<20110303071208.GA4053@sonic.net>
<4D6F4E5D.6080507@enterprisedb.com>
<20110304090031.GE4053@sonic.net>
<4D710ABD.5090103@enterprisedb.com>
<20110307235340.GA21941@sonic.net>
<AANLkTi=54GF1MJN3FSXL2gr9xG_aB09y_taT8daUwz4Z@mail.gmail.com>
<4D75E201.20402@enterprisedb.com>
<4D75EAC4.7090008@enterprisedb.com>
<20110308084956.GE21941@sonic.net>
On 08.03.2011 10:49, daveg wrote:
> On Tue, Mar 08, 2011 at 10:37:24AM +0200, Heikki Linnakangas wrote:
>> On 08.03.2011 10:00, Heikki Linnakangas wrote:
>>> Another idea is to give up on the warning when it appears that
>>> oldestxmin has moved backwards, and assume that it's actually fine. We
>>> could still warn in other cases where the flag appears to be incorrectly
>>> set, like if there is a deleted tuple on the page.
>>
>> This is probably a better idea at least in back-branches. It also
>> handles the case of twiddling vacuum_defer_cleanup_age, which tracking
>> two xmins per transactions would not handle.
>>
>> Here's a patch. I also changed the warning per Robert's suggestion.
>> Anyone see a hole in this?
>
> It would be helpful to have the dbname and schema in the message in addition
> to the relname. I added those to the original diagnostic patch as it was not
> clear that the messages were all related to the same page/table/dg.
Hmm, we don't usually include database name and schema in messages like
this. There's a couple of other warnings in vacuum, too, that only print
the table name. I have to admit that the database name was crucial in
tracking this down, but in hindsight you could've added database name to
log_line_prefix for the same effect. If you have several databases with
same schema, that's a good idea anyway. So in the end, I decided not to
include it.
> Also, in your comment you might mention that multiple databases are one way
> we could see oldestxmin move backwards.
Ok, I added a comment to GetOldestXmin() explaining that.
Committed. Thanks David for your help in debugging this! And thanks to
everyone else for helping out too.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: heikki.linnakangas@enterprisedb.com, daveg@sonic.net, pgsql-hackers@postgresql.org, gsstark@mit.edu, maxim.boguk@gmail.com, bricklen@gmail.com
Subject: Re: Re: PD_ALL_VISIBLE flag was incorrectly set happend during repeatable vacuum
In-Reply-To: <4D767CBE.4030904@enterprisedb.com>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox