#5969: Runtime crashes on parallel execution, GHC 7.0.4
---------------------------+------------------------------------------------
Reporter: PeterisP | Owner:
Type: bug | Status: new
Priority: normal | Component: Compiler
Version: 7.0.4 | Keywords:
Os: MacOS X | Architecture: x86_64 (amd64)
Failure: Runtime crash | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------+------------------------------------------------
Code gets runtime crashes if executed on multiple parallel threads with
Control.Monad.Parallel.mapM - if the whole data is passed as one chunk to
the mapM, then crashes are avoided.
The crashes are repeatable (same code with the same data crashes 90% of
time), but with different crash messages and place/time of crash.
For example:
"LNB_transform_source: internal error: stg_ap_p_ret
(GHC version 7.0.4 for x86_64_apple_darwin)
Please report this as a GHC bug:
http://www.haskell.org/ghc/reportabug
Abort trap: 6"
Another: "Bus error: 10"
Another, after successfully finishing execution
"LNB_transform_source(22223,0x7fff7e200960) malloc: *** error for object
0x2c: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6"
Another: "Segmentation fault: 11"
I cannot isolate a minimalistic test case easily; the program is quite
tricky and didn't crash when was simpler; however, the problems appeared
around the same time as when xml parsing was switched from
Text.XML.HXT.Core to Text.XML.Expat.SAX library, but there was a load of
other changes at the same time.
very rough code logic:
Control.Monad.Parallel.mapM processfiles [[filenames]]
Parallel.processfiles = do
outsideapphandles <- runInteractiveCommand "outsideapp"
mapM (processfile handles) [filenames]
processfile = do
file <- readfile filename
tokens <- SAX.parse file
outputtokens <- map (processtoken outsideapphandles) tokens
writefile outputtokens
processtoken = unsafeperformIO $ do
hPutStrLn inputhandle token
return hgetLine outputhandle
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5969>
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