Hi, On 2017-12-06 13:21:15 -0300, Alvaro Herrera wrote: > I think you've done a stellar job of identifying what the actual problem > was. I like the new (simpler) coding of that portion of > HeapTupleSatisfiesVacuum.
Thanks! > freeze-the-dead is not listed in isolation_schedule; an easy fix. Yea, I'd sent an update about that, stupidly forgot git amend the commit... > I confirm that the test crashes with an assertion failure without the > code fix, and that it doesn't with it. > > I think the comparison to OldestXmin should be reversed: > > if (!TransactionIdPrecedes(xmax, OldestXmin)) > return HEAPTUPLE_RECENTLY_DEAD; > > return HEAPTUPLE_DEAD; > > This way, an xmax that has exactly the OldestXmin value will return > RECENTLY_DEAD rather DEAD, which seems reasonable to me (since > OldestXmin value itself is supposed to be still possibly visible to > somebody). Yes, I think you're right. That's a bug. > Your commit message does a poor job of acknowledging prior work on > diagnosing the problem starting from Dan's initial test case and patch. Yea, you're right. I was writing it with 14h of jetlag, apparently that does something to your brain... Greetings, Andres Freund