Andres Freund <andres@2ndquadrant.com> wrote:
> On 2013-11-27 15:14:11 -0800, Kevin Grittner wrote:
>> ... however, I have not been able to trigger that Assert even with
>> gdb breakpoints at what I think are the right spots. Any
>> suggestions? How far back is it true that the above
>> HeapTupleSatisfiesVacuum() can return HEAPTUPLE_DELETE_IN_PROGRESS
>> but HeapTupleHeaderGetUpdateXid(tuple->t_data) on the exact same
>> tuple structure can return InvalidTransactionId?
>
> What do you mean with "how far back"?
What back-patching will be needed for a fix? It sounds like 9.3?
> Afaics you need a multixact consisting out of a) the updater and b) a
> lock. That's probably easiest to get if you update a row in one session
> without changing the primary key, and then key-share lock it in
> another. Or the other way round.
> Then abort the updater.
Thanks! I'll keep trying to generate a failure at that point.
--
Kevin Grittner
EDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company