BUG #15435: Infinite-recursive SQL procedure can crash a database server
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 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
I had missed it. Thanks.
2018年10月17日(水) 23:12 Tom Lane <tgl@sss.pgh.pa.us>:
Show quoted text
=?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.org> writes:
CREATE PROCEDURE proc1() LANGUAGE sql AS 'CALL proc1();';
CALL proc1(); -- crashWorks for me in 11.0, no doubt as a result of this last-minute fix:
=# 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