[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