#5899: RTS crash w/ strange closure type 603975781 on OS X 10.8
-----------------------------------------------------------+----------------
Reporter: dylukes | Owner:
Type: bug | Status: new
Priority: high | Milestone:
7.4.2
Component: Runtime System | Version:
7.4.1
Keywords: rts, strange closure, internal error, os x | Os:
MacOS X
Architecture: x86_64 (amd64) | Failure:
Runtime crash
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
-----------------------------------------------------------+----------------
Comment(by Irene):
I did more digging - I wanted to verify that this was the only issue
breaking us on Mountain Lion, and possibly also find a short-term kludge
so that those of us who are using it can continue to develop our Haskell
projects while we wait for the release. :) It's important that we know
whether there are any other issues hidden by this one, to avoid a
situation where this one gets fixed just in time but then something else
breaks us and we aren't able to release.
I used the test program
{{{
main = print $ f 1 where f = (+1)
}}}
and passed the linker an option that forces it to keep the symbols in the
same order (which the LLVM people have no interest in supporting as a
long-term solution, since it makes various stuff impossible):
{{{
$ nm -n Main.o | grep -v '^ \+U ' | sed -e 's/^[0-9a-f]* [a-zA-Z] //' >
order.txt
$ ld Main.o rtsopts.o
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/base-4.3.1.0/libHSbase-4.3.1.0.a
/usr/lib/libiconv.dylib
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4
/integer-gmp-0.2.0.3/libHSinteger-gmp-0.2.0.3.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4
/ghc-prim-0.2.0.0/libHSghc-prim-0.2.0.0.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/directory-1.1.0.0/libHSdirectory-1.1.0.0.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/filepath-1.2.0.0/libHSfilepath-1.2.0.0.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/unix-2.4.2.0/libHSunix-2.4.2.0.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4
/old-time-1.0.0.6/libHSold-time-1.0.0.6.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4
/old-locale-1.0.0.2/libHSold-locale-1.0.0.2.a /usr/lib/libSystem.dylib
/usr/lib/crt1.10.6.o
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/libHSffi.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/libHSrts_debug.a
/Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/libHSrtsmain.a
}}}
You'll note that I'm using GHC 7.0.4 for this test. That's because I
couldn't find where _main was defined under 7.4.1 and thus couldn't do the
manual linking step. (I presume it's generated dynamically...) This has
no ramifications for the eventual fix, since of course GHC devs know how
to modify GHC to be certain it really is issuing the desired ld command -
but I don't. So I had to do it this way.
Anyway, attached, please find three long dumps of information. They are
the complete symbol table of the a.out produced by the above command; the
complete output of the test program with all the RTS debugging flags
turned on; and the crash report produced by the OS. It looks like we
still have a problem, even with the symbol order fixed - or did I mess
something up?
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5899#comment:19>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs