On Thursday, August 30, 2012 06:50:13 PM Matthias wrote:
> 2012/8/30 Albe Laurenz <laurenz.albe@wien.gv.at>:
> > Matthias wrote:
> >> when running VACUUM ANALYZE on my database built on win32-x86 from
> >> yesterday's git checkout I always get this at some point during VACUUM
> >> ANALYZE:
> >>
> >> LOG: server process (PID 5880) was terminated by exception 0xC0000094
> >> DETAIL: Failed process was running: VACUUM VERBOSE ANALYZE
> >> HINT: See C include file "ntstatus.h" for a description of the
> >> hexadecimal value.
> >> LOG: terminating any other active server processes
> >>
> >> I am not sure if it's useful to report it here, but I thought I'd do
> >> it anyway :)
> >
> > That seems to be STATUS_INTEGER_DIVIDE_BY_ZERO.
> >
> > Does it only happen with a certain table?
> > Are you sure there is no data corruption?
> > A stack trace would help:
> > http://wiki.postgresql.org/wiki/Getting_a_stack_trace_of_a_running_Postg
> > reSQL_backend_on_Windows
>
> Attached the debugger.
>
> It crashes in rangetypes_typeanalyze.c at line 186:
>
> delta = (non_empty_cnt - 1) / (num_hist - 1);
>
> According to the debugger num_hist = 1, so it divides by zero.
Its curious though that the SIGFPE isn't properly cought though. That would
only lead to a different error, but ...
Postgres does install a handler for it. What happens if you run "SELECT
-2147483648/-1;"?
Greetings,
Andres
-- Andres Freund http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training &
Services