id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
4835,Segfault when reading lots of files,NeilMitchell,,"Given the program:

{{{
module Main(main) where

import Control.Monad

main :: IO ()
main = do
    putStrLn ""Starting segfault...""
    xs <- replicateM 5000 $ do
        src <- readFile ""Main.hs""
        src <- length src `seq` return (lines src)
        return $ zipWith (++) src src
    writeFile ""out.txt"" $ unlines $ concat xs
    src <- readFile $ ""out.txt""
    length src `seq` return ()
    putStrLn ""Test complete, no segfault""
}}}

If I run GHC 7.0.1 on Windows, I see:

{{{
$ ghc --make Main.hs && main
[1 of 1] Compiling Main             ( Main.hs, Main.o )
Linking Main.exe ...
Starting segfault...
Segmentation fault/access violation in generated code
}}}

The code segfaults about 50% of the time, slightly more if it has to build the program (since I guess that flushes stuff out of the disk cache, or slows down some operations). This bug has been boiled down from Hoogle, which hits it for real. I haven't been able to reproduce the bug on GHC 6.12.3, but the original bug occurred there too, so I suspect some variant of this bug also effects 6.12.3.
",bug,closed,highest,7.0.2,Runtime System,7.0.1,duplicate,,ndmitchell@…,Windows,Unknown/Multiple,Runtime crash,,,,,
