Re: A strange Vacuum error ...

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Dave Smith <dave(dot)smith(at)candata(dot)com>
Cc: pgsql <pgsql-general(at)postgresql(dot)org>
Subject: Re: A strange Vacuum error ...
Date: 2004-01-29 17:02:45
Message-ID: 24066.1075395765@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Dave Smith <dave(dot)smith(at)candata(dot)com> writes:
> I am running 7.2.4 and when running a vacuum on my database I get
> NOTICE: Child itemid in update-chain marked as unused - can't continue
> repair_frag
> ERROR: No one parent tuple was found
> vacuumdb: vacuum import failed

> How do I fix this?

I believe this error will go away once the problematic tuple is older
than the oldest running transaction. Find which client is sitting on a
longstanding open transaction and kill it ...

We later realized that this shouldn't be an error condition at all,
since it can happen in corner cases like the one you have. But the fix
was not back-patched as far as 7.2.*. If you can't move to 7.3 or 7.4
soon, you might consider trying to back-patch it yourself:

2002-08-13 16:14 tgl

* src/backend/commands/vacuum.c: Fix tuple-chain-moving tests to
handle marked-for-update tuples correctly (they are not part of a
chain). When failing to find a parent tuple in an update chain,
emit a warning and abandon repair_frag, but do not give an error as
before. This should eliminate the infamous 'No one parent tuple
was found' failure, which we now realize is not a can't-happen
condition but a perfectly valid database state. Per recent
pghackers discussion.

regards, tom lane

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Juan Carlos Diez 2004-01-29 17:46:08 Help: System requirements for postgresql 7.4.1
Previous Message Alberto Mariani 2004-01-29 16:27:51 How to...