Re: Interesting glitch in autovacuum - Mailing list pgsql-hackers

From Alvaro Herrera
Subject Re: Interesting glitch in autovacuum
Date
Msg-id 20080911013345.GM4399@alvh.no-ip.org
Whole thread Raw
In response to Re: Interesting glitch in autovacuum  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Interesting glitch in autovacuum  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
Tom Lane wrote:

> BTW, I did a quick look at all the uses of RecentGlobalXmin in the back
> branches, and I think we might be all right before 8.2.  The older
> branches do in fact init RecentGlobalXmin to InvalidTransactionId,
> and the only thing they use it for is "is this tuple dead to everyone"
> tests.  Since InvalidTransactionId compares older than anything else,
> the only consequence of not having set it is overly-conservative
> decisions not to mark tuples killed.  So unless you see a problem I
> missed, I think we only have an issue-worth-fixing in 8.2 and 8.3.

Actually, 8.2 initializes it to InvalidTransactionId too, so it doesn't
seem like there's a problem there either.  Since the problem stems from
using it as initializer for the Min() calculation, there's no actual bug
on 8.2 either.  The bug only appeared on 8.3 when the initializer was
changed.  And given that there's no HOT in 8.2, then there's no danger
of misusing it in page pruning either.

Still, I produced a patch to 8.2, but given that I'm not sure if it's
worth applying.

--
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

Attachment

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Proposed patch: make SQL interval-literal syntax work per spec
Next
From: Josh Berkus
Date:
Subject: Re: Proposed patch: make SQL interval-literal syntax work per spec