On Thu, Apr 17, 2014 at 10:47 PM, Andres Freund <andres@2ndquadrant.com> wrote:
> On 2014-04-17 17:40:01 -0300, Alvaro Herrera wrote:
>> For once, this looks more like a problem in logical decoding, which is
>> trying to assert about the tuple being updated; the assertion failing is
>> the one added a week ago about not palloc'ing in a critical section.
>
> It's this (older) assertion in HeapTupleHeaderGetCmax():
>
> Assert(TransactionIdIsCurrentTransactionId(HeapTupleHeaderGetUpdateXid(tup)));
>
> That can allocate memory if xmax is a multixact... Does anybody have a
> better idea to solve this than adding a CritSectionCount == 0 && in
> there?
Blech. Isn't that just nerfing the assertion?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company