[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