On 2013-12-03 10:29:54 -0500, Noah Misch wrote:
> Sorry, my original report was rather terse. I speak of the scenario exercised
> by the second permutation in that isolationtester spec. The multixact is
> later than VACUUM's cutoff_multi, so 9.3.1 does not freeze it at all. 9.3.2
> does freeze it to InvalidTransactionId per the code I cited in my first
> response on this thread, which wrongly removes a key lock.
That one is clear, I was only confused about the Assert() you
reported. But I think I've explained that elsewhere.
I currently don't see fixing the errorneous freezing of lockers (not the
updater though) without changing the wal format or synchronously waiting
for all lockers to end. Which both see like a no-go?
While it's still a major bug it seems to still be much better than the
previous case of either inaccessible or reappearing rows.
Greetings,
Andres Freund
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services