#1887: internal error while running parallel program
----------------------------+-----------------------------------------------
Reporter: mrd | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Runtime System | Version: 6.9
Severity: normal | Keywords: sanity error threads
Testcase: | Architecture: x86_64 (amd64)
Os: Linux |
----------------------------+-----------------------------------------------
Problems occur when I use parFlatMap instead of concatMap.
Appears to be non-deterministic, some kind of subtle threading-related
heap corruption.
{{{
$ ghc --make -debug -threaded mat_mult_ndp
$ gdb ./mat_mult_ndp
(gdb) run -p 4 test5.mat out.mat +RTS -N4 -DS
mat_mult_ndp: internal error: ASSERTION FAILED: file Sanity.c, line 86
(GHC version 6.9.20071105 for x86_64_unknown_linux)
Please report this as a GHC bug:
http://www.haskell.org/ghc/reportabug
[New Thread 1124096336 (LWP 933)]
Program received signal SIGABRT, Aborted.
[Switching to Thread 1107310928 (LWP 931)]
0x0000003e076305b5 in raise () from /lib64/libc.so.6
(gdb) bt
#0 0x0000003e076305b5 in raise () from /lib64/libc.so.6
#1 0x0000003e07632060 in abort () from /lib64/libc.so.6
#2 0x000000000047f888 in rtsFatalInternalErrorFn (s=0x529948 "ASSERTION
FAILED: file %s, line %u\n",
ap=0x42002d80) at RtsMessages.c:164
#3 0x000000000047f44c in barf (s=0x529948 "ASSERTION FAILED: file %s,
line %u\n") at RtsMessages.c:40
#4 0x000000000047f4a6 in _assertFail (filename=0x5390b8 "Sanity.c",
linenum=86) at RtsMessages.c:55
#5 0x00000000004b301e in checkClosureShallow (p=0x2aaaaafb0050) at
Sanity.c:86
#6 0x00000000004b2efe in checkSmallBitmap (payload=0x2aaaaafb1378,
bitmap=2, size=4) at Sanity.c:51
#7 0x00000000004b324c in checkStackFrame (c=0x2aaaaafb1370) at
Sanity.c:144
#8 0x00000000004b3418 in checkStackChunk (sp=0x2aaaaafb1360,
stack_end=0x2aaaaafb1400)
at Sanity.c:201
#9 0x00000000004b4a02 in checkTSO (tso=0x2aaaaafb1000) at Sanity.c:715
#10 0x00000000004833fb in threadStackOverflow (cap=0x7872b0,
tso=0x2aaaaafb1000) at Schedule.c:2799
#11 0x0000000000481d90 in scheduleHandleStackOverflow (cap=0x7872b0,
task=0x7b2bc0, t=0x2aaaaafb1000)
at Schedule.c:1658
#12 0x00000000004810e2 in schedule (initialCapability=0x7872b0,
task=0x7b2bc0) at Schedule.c:694
#13 0x0000000000482f3b in workerStart (task=0x7b2bc0) at Schedule.c:2528
#14 0x0000003e096061c5 in start_thread () from /lib64/libpthread.so.0
#15 0x0000003e076d062d in clone () from /lib64/libc.so.6
}}}
I tested it on an older install of GHC 6.7.20070831 and it had the same
problem.
test5.mat is attached sample input describing two matrices of size nxn
(=64 in this case). Smaller inputs didn't seem to tickle the bug, or at
least, not often enough to be noticed.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/1887>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs