
#13987: T13701 fails sporadically -------------------------------------+------------------------------------- Reporter: duog | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Test Suite | Version: 8.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: Other Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- T13701 fails sporadically, comments in Phab:D3586 indicate that it happens while the system is under load. I reproduced this issue by duplicating T13701 7 times, making tests T13701[A-H], then running {{{ make test TEST="T13701A T13701B T13701C T13701D T13701E T13701F T13701G T13701H THREADS=8" }}} on my box with 4 cpus. Comparing profiling reports of the test under and not under load, I found the additional allocations to be in SysTools.builderMainLoop.loop. This function busy-waits from when 2 EOFs are received until getProcessExitCode returns a Just. That this is the cause was verified by changing {{{ | otherwise -> loop chan hProcess t p exitcode }}} to {{{ | otherwise -> threadDelay 10000 >> loop chan hProcess t p exitcode }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13987 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler