From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | emkxp01(at)mtcc(dot)demon(dot)co(dot)uk |
Cc: | hackers(at)postgreSQL(dot)org |
Subject: | Re: [HACKERS] Divide by zero error on SPARC/Linux. |
Date: | 1998-06-22 21:07:47 |
Message-ID: | 199806222107.RAA01511@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
>
> Hi All,
>
> In the latest CVS I can get the backend to terminate quite
> easily with a divide by 0.
>
> postgres=> select 1/0;
> pqReadData() -- backend closed the channel unexpectedly.
> This probably means the backend terminated abnormally before or while
> processing the request.
> We have lost the connection to the backend, so further processing is impossible.
> Terminating.
> [postgres(at)sparclinux pgsql]$
>
> A bt on the core shows:-
>
> I don't know if this is recently introduced behaviour or if
> it's platform dependant. I can't recall trying this before
> so maybe it's always happened on S/Linux.
>
> My immediate thought is to include a check for divide by 0
> in the intXXdiv() functions and do something like an elog(WARN,...)
>
> Firstly, what do other people get on their platform?
I get:
ttest=> select 1/0;
ERROR: floating point exception! The last floating point operation
either exceeded legal ranges or was a divide by zero
so it looks like the signal. Check these lines:
#$ gid FloatExceptionHandler
backend/postmaster/postmaster.c:1247: pqsignal(SIGFPE, FloatExceptionHandler);
backend/tcop/postgres.c:772: FloatExceptionHandler(SIGNAL_ARGS)
include/tcop/tcopprot.h:37: extern void FloatExceptionHandler(SIGNAL_ARGS);
--
Bruce Momjian | 830 Blythe Avenue
maillist(at)candle(dot)pha(dot)pa(dot)us | Drexel Hill, Pennsylvania 19026
+ If your life is a hard drive, | (610) 353-9879(w)
+ Christ can be your backup. | (610) 853-3000(h)
From | Date | Subject | |
---|---|---|---|
Next Message | Keith Parks | 1998-06-22 22:52:26 | Re: [HACKERS] Divide by zero error on SPARC/Linux. |
Previous Message | Keith Parks | 1998-06-22 19:40:15 | Divide by zero error on SPARC/Linux. |