[GHC] #8834: 64-bit windows cabal.exe segfaults in GC

GHC ghc-devs at haskell.org
Fri Mar 14 12:41:16 UTC 2014


#8834: 64-bit windows cabal.exe segfaults in GC
----------------------------------+----------------------------------
        Reporter:  awson          |            Owner:
            Type:  bug            |           Status:  patch
        Priority:  highest        |        Milestone:  7.8.1
       Component:  Compiler       |          Version:  7.8.1-rc2
      Resolution:                 |         Keywords:
Operating System:  Windows        |     Architecture:  x86_64 (amd64)
 Type of failure:  Runtime crash  |       Difficulty:  Unknown
       Test Case:                 |       Blocked By:
        Blocking:                 |  Related Tickets:
----------------------------------+----------------------------------

Comment (by simonmar):

 >    Simon M says "here is the broken bit of code" (comment 35), and then
 says "I misread" (comment 38). Does that mean that the broken bit of code
 isn't broken?

 Correct, we still don't know what's broken.

 >  If we use Karel's reversion patch (between comments 2 and 3 above) does
 that cure all known crashes? I confirm that it does fix my own "ghc-stage2
 segfaults" problem, reported in #8870. But what about the hello-world
 problem in #8834, and Ganesh's new report in #8890?

 >  If reverting the CmmSink change does in fact solve the problem, we
 should probably go ahead and revert it, and un-block the GHC 7.8 release.

 >   But even if we do that we are still stuck with not knowing WHY it
 solves the problem. Perhaps the patch was fine, but it exposes a problem
 somewhere else? And we really want the CmmSink improvements. We really
 need someone to dig into it with GDB. Austin, can you get a Windows box on
 the network that exhibits the bug, so that Simon M can crank up gdb?


 I doubt that the patch actually introduced the bug, since @awson said that
 just the single change to `isTrivial` is enough to trigger the crash.
 Still, this patch isn't really essential - it made it possible to run
 `CmmSink` before stack layout, but measurements showed that it didn't buy
 anything to do that, so we're not currently using that functionality.  The
 other thing in the patch is the `isTrivial` change that makes it more keen
 to inline `GlobalReg`s and literals; this is a very small win (<1%, IIRC).

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8834#comment:44>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list