Skip site navigation (1) Skip section navigation (2)

Re: [HACKERS] Divide by zero error on SPARC/Linux.

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 (view raw or flat)
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)

In response to

pgsql-hackers by date

Next:From: Keith ParksDate: 1998-06-22 22:52:26
Subject: Re: [HACKERS] Divide by zero error on SPARC/Linux.
Previous:From: Keith ParksDate: 1998-06-22 19:40:15
Subject: Divide by zero error on SPARC/Linux.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group