Re: Upgrade 10.5->10.6 : db crash BUS ERROR (sig 10), reproducible - Mailing list pgsql-admin

From Andrew Gierth
Subject Re: Upgrade 10.5->10.6 : db crash BUS ERROR (sig 10), reproducible
Date
Msg-id 874l8ed31p.fsf@news-spur.riddles.org.uk
Whole thread Raw
In response to Upgrade 10.5->10.6 : db crash BUS ERROR (sig 10), reproducible  (Peter <pmc@citylink.dinoex.sub.org>)
Responses Re: Upgrade 10.5->10.6 : db crash BUS ERROR (sig 10), reproducible  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Upgrade 10.5->10.6 : db crash BUS ERROR (sig 10), reproducible  (Palle Girgensohn <girgen@FreeBSD.org>)
List pgsql-admin
>>>>> "Peter" == Peter  <pmc@citylink.dinoex.sub.org> 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.

This is only a problem on clang because gcc has other options we can use
to force working infinity tests.

You can check whether your CPU supports SSE2 by looking at the Features=
line in /var/run/dmesg.boot. It seems unlikely that it does not, because
SSE2 was introduced in 2000 with the Pentium 4.

-- 
Andrew (irc:RhodiumToad)


pgsql-admin by date:

Previous
From: pavan95
Date:
Subject: Re: Too many Row Exclusive Locks held for a long time
Next
From: Palle Girgensohn
Date:
Subject: Re: Upgrade 10.5->10.6 : db crash BUS ERROR (sig 10), reproducible