[Haskell-cafe] Debugging cause of indefinite thread blocking

Claus Reinke claus.reinke at talk21.com
Wed Jul 7 04:38:07 EDT 2010


> I am making use of the Data.Array.Repa module to achieve data-parallelism. 
> On running my program I get the error:
>
> "thread blocked indefinitely on an MVar operation"

Haven't seen any responses yet, so here are some suggestions:

> Two questions:
> 1. What could be some of the potential causes for the above error when the 
> only use of parallelism is Repa arrays?

If you're sure the issue is in Repa, contact the Repa authors?

> 2. What are the best strategies for debugging he cause(s) of such an 
> error?

If it is in your code, you could try replacing the Control.Concurrent
operations with variants that generate a helpful trace before calling
the originals. That approach was used in the Concurrent Haskell
Debugger: http://www.informatik.uni-kiel.de/~fhu/chd/

Google for "concurrent haskell debugger" to find related and
follow-on work on extensions of chd and alternative verification
approaches.

Newer GHCs have some internal runtime event logging features
(eg, link the code with -debug, then run with +RTS -Ds). See RTS
options in the GHC user manual (4.15.[67]).

Claus

 



More information about the Haskell-Cafe mailing list