[GHC] #11978: running a profiled build of shake test suite with rts args +RTS -hb -N10 triggers SIGSEGV
GHC
ghc-devs at haskell.org
Tue May 3 08:28:38 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 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
More information about the ghc-tickets
mailing list