
#8087: Bug in IO manager when increasing the number of capabilities ------------------------------------+------------------------------------- Reporter: parcs | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: libraries/base | Version: 7.7 Keywords: | Operating System: Unknown/Multiple Architecture: Unknown/Multiple | Type of failure: Runtime crash Difficulty: Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | ------------------------------------+------------------------------------- The new IO manager in HEAD has a logic error in the function responsible for creating more IO manager threads after increasing the number of capabilities with `setNumCapabilities`. This results in an index-out-of- range error later on in the program when one perform blocking IO. Test case: {{{ #!haskell import GHC.Conc main = do setNumCapabilities 2 getLine }}} {{{ $ ghc-stage2 -threaded program.hs $ ./program program: Ix{Int}.index: Index (1) out of range ((0,0)) }}} The fix is simple and will be arriving shortly. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8087 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler