On Tue, 2010-04-27 at 13:52 -0400, Tom Lane wrote:
> Simon Riggs <simon@2ndQuadrant.com> writes:
> > v3 attached
>
> This patch changes KnownAssignedXidsRemove() so that failure to find
> the target XID is elog(ERROR) (ie, a PANIC, since this is in the
> startup process).
Not in all cases. The code is correct, as far as I am aware from
testing.
> However, this comment is still there:
> /*
> * We can fail to find an xid if the xid came from a subtransaction that
> * aborts, though the xid hadn't yet been reported and no WAL records have
> * been written using the subxid. In that case the abort record will
> * contain that subxid and we haven't seen it before.
> */
>
> WTF? Either the comment is wrong or this should not be an elog
> condition.
That section of code has been rewritten many times. I think it is now
inaccurate and should be removed. I left it there because the
unfortunate history of the project has been the removal of comments and
then later rediscovery of the truth, sometimes more than once. I could
no longer reproduce that error; someone else may know differently.
-- Simon Riggs www.2ndQuadrant.com