On 2014-06-21 15:53:32 +0530, Pavan Deolasee wrote:
> 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)
There's already a thread about it:
http://archives.postgresql.org/message-id/20140614205106.GV18688%40eldon.alvh.no-ip.org
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services