[GHC] #11978: running a profiled build of shake test suite with rts args +RTS -hb -N10 triggers SIGSEGV
GHC
ghc-devs at haskell.org
Sat Apr 30 23:18:42 UTC 2016
#11978: running a profiled build of shake test suite with rts args +RTS -hb -N10
triggers SIGSEGV
---------------------------------+----------------------------------------
Reporter: carter | Owner:
Type: bug | Status: patch
Priority: highest | Milestone:
Component: Compiler | Version: 8.0.1
Resolution: | Keywords:
Operating System: MacOS X | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: #4820 | Differential Rev(s): phab:D2159
Wiki Page: |
---------------------------------+----------------------------------------
Comment (by erikd):
On IRC @simonmar said that in this function `overwritingClosure` the
closure type should not be `WHITEHOLE`. The backtrace looks like:
{{{
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffca7fc700 (LWP 27422)]
executeMessage (cap=cap at entry=0x14861a0, m=0x20022b340) at
rts/Messages.c:104
104 doneWithMsgThrowTo(t);
(gdb) bt
#0 executeMessage (cap=cap at entry=0x14861a0, m=0x20022b340) at
rts/Messages.c:104
#1 0x0000000000f47834 in scheduleProcessInbox (pcap=<optimized out>) at
rts/Schedule.c:1005
#2 scheduleFindWork (pcap=<optimized out>) at rts/Schedule.c:616
#3 schedule (initialCapability=<optimized out>,
task=task at entry=0x7fffc4000910) at rts/Schedule.c:274
#4 0x0000000000f490dc in scheduleWorker (cap=<optimized out>,
task=0x7fffc4000910) at rts/Schedule.c:2382
#5 0x00007ffff75b6454 in start_thread (arg=0x7fffca7fc700) at
pthread_create.c:334
#6 0x00007ffff6d72eed in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:109
}}}
The call path seems to be `scheduleProcessInbox` gets the next message,
passes it to `executeMessage` which calls `throwToMsg` on it which returns
`THROWTO_SUCCESS`, and then passes the message to `doneWithMsgThrowTo`
which then passes it to `overwritingClosure`.
Reading @ezyang's paper http://ezyang.com/jfp-ghc-rts-draft.pdf suggests
that yes indeed this code path should not be executed when the closure
type is `WHITEHOLE`.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11978#comment:14>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list