threadDelay with large values crashes the IO manager on 64-bit OS X
System Version: Mac OS X 10.6.8 (10K540)
Kernel Version: Darwin 10.8.0
$ ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.2.1
import Control.Concurrent
main :: IO ()
main = threadDelay $ 100000001000084 + 100
$ ghc -threaded --make -fforce-recomp iocrash.hs && ./iocrash
[1 of 1] Compiling Main ( iocrash.hs, iocrash.o )
Linking iocrash ...
iocrash: kevent: invalid argument (Invalid argument)
iocrash: ioManagerWakeup: write: Bad file descriptor
iocrash: sendWakeup: invalid argument (Bad file descriptor)
iocrash: ioManagerDie: write: Bad file descriptor
This isn't fully deterministic. Removing the "+ 100" results in the crash happening only some of the time on my system.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 7.2.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Runtime System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | carlhowells |
| Operating system | |
| Architecture |