Обсуждение: BUG #15435: Infinite-recursive SQL procedure can crash a databaseserver
BUG #15435: Infinite-recursive SQL procedure can crash a databaseserver
От
PG Bug reporting form
Дата:
The following bug has been logged on the website: Bug reference: 15435 Logged by: rlbxku1r Email address: emuser20140816@gmail.com PostgreSQL version: 11rc1 Operating system: Windows Description: CREATE PROCEDURE proc1() LANGUAGE sql AS 'CALL proc1();'; CALL proc1(); -- crash I've also tried the minimum max_stack_depth, but it has no effect: SET max_stack_depth TO '100kB'; CALL proc1();
=?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.org> writes: > CREATE PROCEDURE proc1() LANGUAGE sql AS 'CALL proc1();'; > CALL proc1(); -- crash Works for me in 11.0, no doubt as a result of this last-minute fix: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=db9034bf7653fa527e2531e1a713dbbd37066a6b =# CALL proc1(); ERROR: stack depth limit exceeded HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depthlimit is adequate. CONTEXT: SQL function "proc1" statement 1 SQL function "proc1" statement 1 SQL function "proc1" statement 1 SQL function "proc1" statement 1 SQL function "proc1" statement 1 SQL function "proc1" statement 1 ... lots more ... regards, tom lane
I had missed it. Thanks.
2018年10月17日(水) 23:12 Tom Lane <tgl@sss.pgh.pa.us>:
PG Bug reporting form <noreply@postgresql.org> writes:
> CREATE PROCEDURE proc1() LANGUAGE sql AS 'CALL proc1();';
> CALL proc1(); -- crash
Works for me in 11.0, no doubt as a result of this last-minute fix:
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=db9034bf7653fa527e2531e1a713dbbd37066a6b
=# CALL proc1();
ERROR: stack depth limit exceeded
HINT: Increase the configuration parameter "max_stack_depth" (currently 2048kB), after ensuring the platform's stack depth limit is adequate.
CONTEXT: SQL function "proc1" statement 1
SQL function "proc1" statement 1
SQL function "proc1" statement 1
SQL function "proc1" statement 1
SQL function "proc1" statement 1
SQL function "proc1" statement 1
... lots more ...
regards, tom lane