Обсуждение: 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();


Re: BUG #15435: Infinite-recursive SQL procedure can crash a database server

От
Tom Lane
Дата:
=?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


Re: BUG #15435: Infinite-recursive SQL procedure can crash a database server

От
fn ln
Дата:
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