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
stacksize 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-recursiveroutines such as expression evaluation. The default setting is two megabytes (2MB), which is
conservativelysmall and unlikely to risk crashes. However, it may be too small to allow execution of complex functions.
Onlysuperusers can change this setting.
Setting max_stack_depth higher than the actual kernel limit will mean that a runaway recursive function can crash an
individualbackend process. On platforms where PostgreSQL can determine the kernel limit, it will not let you set this
variableto an unsafe value. However, not all platforms provide the information, so caution is recommended in selecting
avalue.
> #max_stack_depth = 2MB # min 100kB