
#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 simonmar): Yeah, this actually looks like a bug. `overwritingClosure()` wants to see the `MSG_THROWTO` closure, but we have locked it with `lockClosure()`, which replaces the header with a `WHITEHOLE`. We can't replace the header before calling `overwritingClosure()`, because that would cause race conditions - another thread could execute the `MSG_THROWTO`. We can't replace the header with `MSG_NULL` before calling `overwritingClosure()`, because a `MSG_NULL` is smaller than a `MSG_THROWTO`, and we won't overwrite the payload correctliy. So I think the only alternative is to have another version of `overwritingClosure()` that takes the size of the original closure as an argument. The size is `sizeofW(MessageThrowTo)`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11978#comment:16 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler