summaryrefslogtreecommitdiff
path: root/src/backend/storage/lmgr/proc.c
diff options
context:
space:
mode:
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-06-30 10:13:48 +0300
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>2014-06-30 10:26:00 +0300
commit1c6821be31f91ab92547a8ed4246762c8cefb1b3 (patch)
treede5e845c96e8f37b7073708a5bdf9e6b81c6abc9 /src/backend/storage/lmgr/proc.c
parenta749a23d7af4dba9b3468076ec561d2cbf69af09 (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.c3
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();
}