Re: PANIC: ERRORDATA_STACK_SIZE exceeded

From: Ray Stell <stellr(at)cns(dot)vt(dot)edu>
To: "Edmundo Robles L(dot)" <erobles(at)sensacd(dot)com(dot)mx>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: PANIC: ERRORDATA_STACK_SIZE exceeded
Date: 2010-12-17 01:40:22
Message-ID: 20101217014022.GA17961@cns.vt.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Thu, Dec 16, 2010 at 06:33:25PM -0600, Edmundo Robles L. wrote:
> hi! i have postgresql 8.3.12 and i got the eror:
> PANIC: ERRORDATA_STACK_SIZE exceeded
>

if (++errordata_stack_depth >= ERRORDATA_STACK_SIZE)
{
/*
* Wups, stack not big enough. We treat this as a PANIC condition
* because it suggests an infinite loop of errors during error
* recovery.
*/
errordata_stack_depth = -1; /* make room on stack */
ereport(PANIC, (errmsg_internal("ERRORDATA_STACK_SIZE exceeded")));
}

max_stack_depth (integer)
Specifies the maximum safe depth of the server's execution stack. The ideal setting for this parameter is the actual stack size limit enforced by the kernel (as set by ulimit -s or local equivalent), less a safety margin of a megabyte or so. The safety margin is needed because the stack depth is not checked in every routine in the server, but only in key potentially-recursive routines such as expression evaluation. The default setting is two megabytes (2MB), which is conservatively small and unlikely to risk crashes. However, it may be too small to allow execution of complex functions. Only superusers can change this setting.

Setting max_stack_depth higher than the actual kernel limit will mean that a runaway recursive function can crash an individual backend process. On platforms where PostgreSQL can determine the kernel limit, it will not let you set this variable to an unsafe value. However, not all platforms provide the information, so caution is recommended in selecting a value.

> #max_stack_depth = 2MB # min 100kB

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Jasen Betts 2010-12-17 03:57:41 Re: How to obtain the maximum value of a date, between 3 tables...
Previous Message Edmundo Robles L. 2010-12-17 00:33:25 PANIC: ERRORDATA_STACK_SIZE exceeded