diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2014-06-30 10:13:48 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2014-06-30 10:26:00 +0300 |
commit | 1c6821be31f91ab92547a8ed4246762c8cefb1b3 (patch) | |
tree | de5e845c96e8f37b7073708a5bdf9e6b81c6abc9 /src/backend/storage/lmgr/proc.c | |
parent | a749a23d7af4dba9b3468076ec561d2cbf69af09 (diff) |
Fix and enhance the assertion of no palloc's in a critical section.
The assertion failed if WAL_DEBUG or LWLOCK_STATS was enabled; fix that by
using separate memory contexts for the allocations made within those code
blocks.
This patch introduces a mechanism for marking any memory context as allowed
in a critical section. Previously ErrorContext was exempt as a special case.
Instead of a blanket exception of the checkpointer process, only exempt the
memory context used for the pending ops hash table.
Diffstat (limited to 'src/backend/storage/lmgr/proc.c')
-rw-r--r-- | src/backend/storage/lmgr/proc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index dfaf10e4b5c..ea88a241443 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -411,8 +411,9 @@ InitProcess(void) /* * Now that we have a PGPROC, we could try to acquire locks, so initialize - * the deadlock checker. + * local state needed for LWLocks, and the deadlock checker. */ + InitLWLockAccess(); InitDeadLockChecking(); } |