Re: plperl sigfpe reset can crash the server

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: plperl sigfpe reset can crash the server
Дата
Msg-id 201208240644.15864.andres@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: plperl crash with Debian 6 (64 bit), pl/perlu, libwww and https  (Andres Freund <andres@2ndquadrant.com>)
Ответы Re: plperl sigfpe reset can crash the server
Список pgsql-hackers
On Thursday, August 23, 2012 12:17:22 PM Andres Freund wrote:
> Hi,
> 
> While debugging an instance of this bug I noticed that plperlu always
> removes the SIGFPE handler and sets it to ignore:
> 
> 
> andres@awork2:~$ psql -p 5435 -U postgres -h /var/run/postgresql test
> Timing is on.
> psql (9.1devel, server 9.1.5)
> Type "help" for help.
> 
> test=# SELECT pg_backend_pid();
>  pg_backend_pid
> ----------------
>            9287
> 
> root@awork2:/home/andres# grep -E '^Sig(Cgt|Ign)' /proc/9287/status|awk
> '{print $2}'
> 0000000001301800
> 0000000180006287
> 
> test=# DO LANGUAGE plperlu $$$$;
> 
> root@awork2:/home/andres# grep -E '^Sig(Cgt|Ign)' /proc/9287/status|awk
> '{print $2}'
> 0000000001301880
> 0000000180006207
> 
> Note the 8'th bit being unset in SigCgt and set in SigIgn. Thats SIGFPE...
> 
> Not sure how relevant this really is, but it could cause errors to be
> ignored...

In fact it can be used to crash the server:
test=# SELECT (-2^31)::int/-1;
ERROR:  floating-point exception
DETAIL:  An invalid floating-point operation was signaled. This probably means 
an out-of-range result or an invalid operation, such as division by zero.
test=# DO LANGUAGE plperl $$$$;
DO
Time: 172.235 ms
test=# SELECT (-2^31)::int/-1;
server closed the connection unexpectedlyThis probably means the server terminated abnormallybefore or while processing
therequest.
 
The connection to the server was lost. Attempting reset: Failed.

Greetings,

Andres
-- Andres Freund                       http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Recently noticed documentation issues
Следующее
От: Tom Lane
Дата:
Сообщение: Re: plperl sigfpe reset can crash the server