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 |