[GHC] #7719: System.Timeout.timeout may leak <<timeout>> exceptions

GHC cvs-ghc at haskell.org
Tue Feb 26 00:42:45 CET 2013


#7719: System.Timeout.timeout may leak <<timeout>> exceptions
-------------------------+--------------------------------------------------
Reporter:  int-e         |          Owner:                
    Type:  bug           |         Status:  new           
Priority:  normal        |      Component:  libraries/base
 Version:  7.7           |       Keywords:                
      Os:  Linux         |   Architecture:  x86_64 (amd64)
 Failure:  None/Unknown  |      Blockedby:                
Blocking:                |        Related:                
-------------------------+--------------------------------------------------
 The current implementation of {{{timeout}}} can leak {{{Timeout}}}
 exceptions if an asynchronous exception is delivered at the wrong time.
 The most worrysome such case is another {{{Timeout}}} exception raised by
 surrounding call to {{{timeout}}}. The following program reproduces the
 issue reliably for me:
 {{{
 import System.Timeout
 import Control.Monad
 import Control.Concurrent

 t d = timeout d $ timeout d $ timeout d $ timeout d $ timeout d $ timeout
 (10^9) $ threadDelay 100

 main = forever $ mapM_ t [1..200]

 -- > ghc -O2 -rtsopts -threaded --make TT.hs
 -- > ./TT +RTS -N1
 -- TT: <<timeout>>
 }}}

 Context: A recent thread on {{{ghc-users}}}, starting with
 http://www.haskell.org/pipermail/glasgow-haskell-
 users/2013-February/023811.html, got me thinking about corner cases of
 timeout handling again.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7719>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list