Hi All,
As I noted in another thread, if built with WAL_DEBUG and GUC wal_debug set
to true, HEAD hits an assertion failure. This is probably not a critical
issue given that hardly anyone would run a server with WAL_DEBUG turned on,
its still worth fixing.
The offending code is in XLogInsert() which called initStringInfo() which
in turn calls palloc(). I am not sure what's the best way to move that
allocation outside of critical section.
LOG: INSERT @ 0/16CD2E8: prev 0/16CD258; xid 0; len 4: XLOG - checkpoint:
redo 0/6000; tli 0; prev tli 0; fpw false; xid 0/0; oid 0; multi 0; offset
0; oldest xid 0 in DB 0; oldest multi 0 in DB 0; oldest running xid 0;
shutdown
STATEMENT: CREATE TABLE test(a int);
LOG: INSERT @ 0/16CD318: prev 0/16CD2C0; xid 0; len 16: Storage - UNKNOWN
STATEMENT: CREATE TABLE test(a int);
TRAP: FailedAssertion("!(CritSectionCount == 0 || (CurrentMemoryContext) ==
ErrorContext || (MyAuxProcType == CheckpointerProcess))", File:
"/Users/pavan/work/SOURCES/postgresql/src/backend/utils/mmgr/mcxt.c", Line:
670)
Thanks,
Pavan
--
Pavan Deolasee
http://www.linkedin.com/in/pavandeolasee