Skip to content

Crash in messageBlackHole() on SPARC

Compile the attached program on a SPARC T2:

benl@greyarea$ ghc -Odph Main.hs -threaded -rtsopts

Run with a large number of threads:

benl@greyarea$ ./Main 4000000 +RTS -N32
Generating test data.
Computing hull.
Bus Error (core dumped)

GDB says:

#0  0x01b55334 in messageBlackHole ()
#1  0x01b55834 in executeMessage ()
#2  0x01b2ade0 in schedule ()
#3  0x01b2b900 in scheduleWorker ()
#4  0xff1c4910 in _lwp_start () from /lib/libc.so.1
#5  0xff1c4910 in _lwp_start () from /lib/libc.so.1

This is compiled against vector-0.7 and primitive-0.3.1. I'm not using unsafe vector functions. It crashes about 50% of the time with the given arguments. With a lower number of points (like 1000000) and less threads it still crashes but not as reliably. It always crashes in messageBlackHole(). Disabling the parallel GC with -qg doesn't help, nor does running with -H1000M. It runs fine on x86/OSX.

This patch:

Thu Jun 10 01:06:36 PDT 2010  Simon Marlow <marlowsd@gmail.com>
 * messageBlackHole: fix deadlock bug caused by a missing 'volatile'

didn't help, so it could be unrelated.

Trac metadata
Trac field Value
Version 6.13
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Runtime System
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information