[GHC] #10860: setnumcapabilities001: internal error: ASSERTION FAILED: file rts/Schedule.c, line 400 (was: The test `setnumcapabilities001` sometimes fails on Phabricator)
GHC
ghc-devs at haskell.org
Mon Dec 7 23:04:09 UTC 2015
#10860: setnumcapabilities001: internal error: ASSERTION FAILED: file
rts/Schedule.c, line 400
-------------------------------------+-------------------------------------
Reporter: thomie | Owner: simonmar
Type: bug | Status: new
Priority: high | Milestone: 8.0.1
Component: Runtime System | Version: 7.10.2
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Changes (by thomie):
* cc: simonmar (added)
Comment:
I can reproduce two different assert failures quite reliably. The output
of `+RTS -Ds` is attached. Below are the stack traces from gdb.
To reproduce:
{{{
$ ../../../../inplace/bin/ghc-stage2 -threaded -debug
setnumcapabilities001.hs -fforce-recomp
$ gdb setnumcapabilities001
(gdb) run 4 8 2000 +RTS -Ds > stdout 2> stderr &
}}}
Retry the `run` command multiple times, and keep the cpu busy by running
for example `ghc -e [0..] > /dev/null` in a separate terminal.
Another way to reproduce the assert failures is to run:
{{{
$ for i in `seq 1 100`; do echo ok && ./setnumcapabilities001 100 8 2000
+RTS -Ds 2> out || break ; done
}}}
== Assert failure in the Garbage Colletor ==
{{{
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe6ffd700 (LWP 4419)]
0x00007ffff6ea7cc9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
bt
#0 0x00007ffff6ea7cc9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff6eab0d8 in __GI_abort () at abort.c:89
#2 0x000000000078c912 in rtsFatalInternalErrorFn (s=0x80a160 "ASSERTION
FAILED: file %s, line %u\n", ap=0x7fffe6ffcc68) at rts/RtsMessages.c:182
#3 0x000000000078c54a in barf (s=0x80a160 "ASSERTION FAILED: file %s,
line %u\n") at rts/RtsMessages.c:46
#4 0x000000000078c5ad in _assertFail (filename=0x80e9d0 "rts/sm/GC.c",
linenum=904) at rts/RtsMessages.c:61
#5 0x00000000007a314b in dec_running () at rts/sm/GC.c:904
#6 0x00000000007a32ec in scavenge_until_all_done () at rts/sm/GC.c:977
#7 0x00000000007a3431 in gcWorkerThread (cap=0x7fffec0214d0) at
rts/sm/GC.c:1035
#8 0x0000000000787020 in yieldCapability (pCap=0x7fffe6ffce30,
task=0x7fffec035680, gcAllowed=rtsTrue) at rts/Capability.c:708
#9 0x000000000078ee7a in scheduleYield (pcap=0x7fffe6ffce68,
task=0x7fffec035680) at rts/Schedule.c:674
#10 0x000000000078e3dd in schedule (initialCapability=0x7fffec0214d0,
task=0x7fffec035680) at rts/Schedule.c:298
#11 0x00000000007914a2 in scheduleWorker (cap=0x7fffec0214d0,
task=0x7fffec035680) at rts/Schedule.c:2378
#12 0x000000000079a3f0 in workerStart (task=0x7fffec035680) at
rts/Task.c:437
#13 0x00007ffff723e182 in start_thread (arg=0x7fffe6ffd700) at
pthread_create.c:312
#14 0x00007ffff6f6b47d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
}}}
== Assert failure in the Scheduler ==
{{{
Program received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffe77fe700 (LWP 4394)]
0x00007ffff6ea7cc9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
bt
#0 0x00007ffff6ea7cc9 in __GI_raise (sig=sig at entry=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1 0x00007ffff6eab0d8 in __GI_abort () at abort.c:89
#2 0x000000000078c912 in rtsFatalInternalErrorFn (s=0x80a160 "ASSERTION
FAILED: file %s, line %u\n", ap=0x7fffe77fdd58) at rts/RtsMessages.c:182
#3 0x000000000078c54a in barf (s=0x80a160 "ASSERTION FAILED: file %s,
line %u\n") at rts/RtsMessages.c:46
#4 0x000000000078c5ad in _assertFail (filename=0x80a529 "rts/Schedule.c",
linenum=400) at rts/RtsMessages.c:61
#5 0x000000000078e5ef in schedule (initialCapability=0x7fffec0214d0,
task=0x7fffe0000910) at rts/Schedule.c:400
#6 0x00000000007914a2 in scheduleWorker (cap=0x7fffec0214d0,
task=0x7fffe0000910) at rts/Schedule.c:2378
#7 0x000000000079a3f0 in workerStart (task=0x7fffe0000910) at
rts/Task.c:437
#8 0x00007ffff723e182 in start_thread (arg=0x7fffe77fe700) at
pthread_create.c:312
#9 0x00007ffff6f6b47d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:111
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10860#comment:3>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list