"Peter" == Peter <pmc@xxxxxxxxxxxxxxxxxxxxxxx> writes:
Peter> Hi,
Peter> after upgrading from 10.5 to 10.6.2, database now says this:
Peter> Mar 7 13:58:43 <
local0.info> edge postgres[1816]: [8-1] :[] LOG:
Peter> worker process: parallel worker for PID 3526 (PID 3527) was
Peter> terminated by signal 10: Bus error
I'm assuming from the CC that this is on FreeBSD, but on what
architecture?
Did it drop a core file (look in the data dir for postgres.core) and if
so can you get a backtrace?
Peter> Time to read the relnotes:
When building on i386 with the clang compiler, require -msse2 to be
used (Andres Freund) This avoids problems with missed floating point
overflow checks.
Peter> What the hell does that mean? Does it concern the build process?
Peter> Or the operation? Why does it only concern the Clang? And what
Peter> is SSE2 concerned with?
It concerns only overflow checks in floating-point computations.
Clang's __builtin_isinf(x) function, which is supposed to test if x is
infinite, does not work reliably on i386 when the x87 registers are used
for floating point. It does work if the SSE2 registers are used instead,
which clang will do if the -msse2 option is used. The downside of course
is that the code will no longer run on CPUs that are old enough to vote.