Re: crash with assertions and WAL_DEBUG - Mailing list pgsql-hackers

From Rahila Syed
Subject Re: crash with assertions and WAL_DEBUG
Date
Msg-id CAH2L28sqpsfVpj0VzATDawawJn+fz4Uzcw8L7+1MW93h=n-0Nw@mail.gmail.com
Whole thread Raw
In response to Re: crash with assertions and WAL_DEBUG  (Heikki Linnakangas <hlinnakangas@vmware.com>)
Responses Re: crash with assertions and WAL_DEBUG  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
Hello,

The patch on compilation gives following error,

mcxt.c: In function ‘MemoryContextAllowInCriticalSection’:
mcxt.c:322: error: ‘struct MemoryContextData’ has no member named ‘allowInCriticalSection’

The member in MemoryContextData is defined as 'allowInCritSection' while the MemoryContextAllowInCriticalSection accesses the field as 'context->allowInCriticalSection'.


Thank you,





On Mon, Jun 23, 2014 at 3:28 PM, Heikki Linnakangas <hlinnakangas@vmware.com> wrote:
On 06/21/2014 01:58 PM, Heikki Linnakangas wrote:
It's a bit difficult to attach the mark to the palloc calls, as neither
the WAL_DEBUG or LWLOCK_STATS code is calling palloc directly, but
marking specific MemoryContexts as sanctioned ought to work. I'll take a
stab at that.

I came up with the attached patch. It adds a function called MemoryContextAllowInCriticalSection(), which can be used to exempt specific memory contexts from the assertion. The following contexts are exempted:

* ErrorContext
* MdCxt, which is used in checkpointer to absorb fsync requests. (the checkpointer process as a whole is no longer exempt)
* The temporary StringInfos used in WAL_DEBUG (a new memory "WAL Debug" context is now created for them)
* LWLock stats hash table (a new "LWLock stats" context is created for it)

Barring objections, I'll commit this to master, and remove the assertion from REL9_4_STABLE.

- Heikki



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: Re: idle_in_transaction_timeout
Next
From: Alvaro Herrera
Date:
Subject: Re: API change advice: Passing plan invalidation info from the rewriter into the planner?