[GHC] #8087: Bug in IO manager when increasing the number of capabilities

GHC ghc-devs at haskell.org
Tue Jul 23 20:18:12 CEST 2013


#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




More information about the ghc-tickets mailing list