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 <hlinnakan...@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 > >