Re: plperl sigfpe reset can crash the server

Andres Freund <andres@2ndquadrant.com>

From: Andres Freund <andres@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@postgresql.org, Andrew Dunstan <andrew@dunslane.net>, Hannu Krosing <hannu@2ndquadrant.com>
Date: 2012-08-24T05:19:42Z
Lists: pgsql-hackers
On Friday, August 24, 2012 06:55:04 AM Tom Lane wrote:
> Andres Freund <andres@2ndquadrant.com> writes:
> > On Thursday, August 23, 2012 12:17:22 PM Andres Freund wrote:
> >> While debugging an instance of this bug I noticed that plperlu always
> > 
> >> removes the SIGFPE handler and sets it to ignore:
> > In fact it can be used to crash the server:
> Um ... how exactly can that happen, if the signal is now ignored?
My man 2 signal tells me:
"According  to POSIX, the behavior of a process is undefined after it ignores 
a SIGFPE, SIGILL, or SIGSEGV signal that was not generated by kill(2) or 
raise(3)."

Killing the process is a kind of undefined behaviour ;)

Andres

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