Thread: Interesting VACUUM notice
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
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
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
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