+RTS -hb crash when blocking on empty TChan
Running the following code
module Main where
import Control.Concurrent
import Control.Concurrent.STM
main :: IO ()
main = do
c <- newTChanIO
forkIO . atomically $ readTChan c
return ()
produces:
$ ./tmp +RTS -hb
tmp: internal error: Invalid object in processHeapClosureForDead(): 0
(GHC version 7.6.3 for x86_64_unknown_linux)
It crashes without forkIO as well, I inserted it so that a plain run doesn't result in "thread blocked indefinitely in an STM transaction".
Trac metadata
Trac field | Value |
---|---|
Version | 7.6.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Runtime System |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |