Обсуждение: Interesting VACUUM notice

Поиск
Список
Период
Сортировка

Interesting VACUUM notice

От
Mario Weilguni
Дата:
I found a message I've never seen before in VACUUM, its:
NOTICE:  Too old parent tuple found - can't continue repair_frag

The version is Postgresql 7.2.1.

The problem occurs in vacuum.c, around line 1700, but the interesting part is the comment around:
/*
* Read above about cases when
* !ItemIdIsUsed(Citemid) (child item is
* removed)... Due to the fact that at the moment
* we don't remove unuseful part of update-chain,
* it's possible to get too old parent row here.
* Like as in the case which caused this problem,
* we stop shrinking here. I could try to find
* real parent row but want not to do it because
* of real solution will be implemented anyway,
* latter, and we are too close to 6.5 release. -
* vadim 06/11/99
*/

This sounds like a solution should be available, but it seems to happen anyway. Yesterday I've found no way to fix this
problem,
but today it's not reproduceable any more. Might this notice indicate a serious problem?

Best regards,Mario Weilguni



Re: Interesting VACUUM notice

От
Andrew Sullivan
Дата:
On Fri, Nov 01, 2002 at 09:38:31AM +0100, Mario Weilguni wrote:
> I found a message I've never seen before in VACUUM, its:
> NOTICE:  Too old parent tuple found - can't continue repair_frag
> 
> The version is Postgresql 7.2.1.

I thought this was fixed in 7.2.2 or 7.2.3?

A
-- 
----
Andrew Sullivan                         204-4141 Yonge Street
Liberty RMS                           Toronto, Ontario Canada
<andrew@libertyrms.info>                              M2P 2A8                                        +1 416 646 3304
x110



Re: Interesting VACUUM notice

От
Tom Lane
Дата:
Mario Weilguni <mweilguni@sime.com> writes:
> I found a message I've never seen before in VACUUM, its:
> NOTICE:  Too old parent tuple found - can't continue repair_frag

> This sounds like a solution should be available, but it seems to
> happen anyway. Yesterday I've found no way to fix this problem, but
> today it's not reproduceable any more. Might this notice indicate a
> serious problem?

No; it's just an unimplemented case in VACUUM FULL's tuple-chain-moving
code.  The problem disappears when the chain stops being interesting --
that is, as soon as existing transactions finish so that no transaction
can see the older states of that row anymore.  Meanwhile, the only
consequence is that VACUUM may not be able to shrink the table as much
as it otherwise could've.

I downgraded all those "can't continue repair_frag" notices to DEBUG1
level yesterday, since they are expected (though improbable) cases.
        regards, tom lane


Re: Interesting VACUUM notice

От
Tom Lane
Дата:
Andrew Sullivan <andrew@libertyrms.info> writes:
> On Fri, Nov 01, 2002 at 09:38:31AM +0100, Mario Weilguni wrote:
>> I found a message I've never seen before in VACUUM, its:
>> NOTICE:  Too old parent tuple found - can't continue repair_frag
>> 
>> The version is Postgresql 7.2.1.

> I thought this was fixed in 7.2.2 or 7.2.3?

Given that the problem went away by itself, I think he actually was
seeing an incomplete tuple chain, and not the false-chain cases we
discovered recently.
        regards, tom lane