Changes between Initial Version and Version 4 of Ticket #5969


Ignore:
Timestamp:
Apr 11, 2012 1:01:21 PM (2 years ago)
Author:
simonmar
Comment:

Thanks for the report. Is there any chance you can let me have the code so I can reproduce it?

This is probably the same bug as reported in #5085.

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #5969

    • Property Cc PeterisP@… added
    • Property Component changed from Compiler to Runtime System
    • Property Summary changed from Runtime crashes on parallel execution, GHC 7.0.4 to Runtime crashes on parallel execution, GHC 7.0.4-7.4.1
    • Property Priority changed from normal to high
    • Property Difficulty changed from to Unknown
    • Property Version changed from 7.0.4 to 7.4.1
    • Property Milestone changed from to 7.4.2
    • Property Owner set to simonmar
  • Ticket #5969 – Description

    initial v4  
    1 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. 
     1Code 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. 
    22 
    33The crashes are repeatable (same code with the same data crashes 90% of time), but with different crash messages and place/time of crash. 
    44For example: 
     5{{{ 
    56"LNB_transform_source: internal error: stg_ap_p_ret 
    67    (GHC version 7.0.4 for x86_64_apple_darwin) 
     
    1314Abort trap: 6" 
    1415Another: "Segmentation fault: 11" 
    15  
     16}}} 
    1617I 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. 
    1718 
    1819very rough code logic: 
     20{{{ 
    1921  Control.Monad.Parallel.mapM processfiles [[filenames]] 
    2022  Parallel.processfiles = do 
     
    2931       hPutStrLn inputhandle token 
    3032       return hgetLine outputhandle 
     33}}}