#2282: threaded runtime system crashes on powerpc with -N2
----------------------------------------------+-----------------------------
Reporter: [EMAIL PROTECTED] | Owner:
Type: bug | Status: new
Priority: normal | Component: Runtime System
Version: 6.8.2 | Severity: normal
Keywords: | Testcase:
Architecture: powerpc | Os: MacOS X
----------------------------------------------+-----------------------------
A program using threads (in a somewhat naive way) crashes at runtime, only
if it is linked against the -threaded RTS, only if it is given the runtime
option +RTS -N2 -RTS, and only on powerpc. The error is:
{{{
SurfaceViewer: internal error: END_TSO_QUEUE object entered!
(GHC version 6.8.2 for powerpc_apple_darwin)
Please report this as a GHC bug:
http://www.haskell.org/ghc/reportabug
Abort trap
}}}
To reproduce:
{{{
darcs get http://www.cs.york.ac.uk/fp/darcs/CaseTables
curl -O http://www.gris.uni-
tuebingen.de/edu/areas/scivis/volren/datasets/data/lobster.raw.gz
gunzip lobster.raw.gz
cd CaseTables
ghc-6.8.2 --make -O2 -fglasgow-exts -threaded SurfaceViewer
./SurfaceViewer ../lobster.raw 301 324 56 20 1 +RTS -N2 -RTS
}}}
If you omit the -threaded linking flag, or omit the -N2 runtime flag, then
there is no crash. I could not reproduce it on x86.
The only usage of threading is in the module Gridiness, which defines a
simple read/writer protocol through a Chan.
A different runtime crash is apparent if the bottom three definitions in
Gridiness are swapped for the top three (currently commented out), which
use a single MVar for communication rather than a Chan. In that case, the
error is
{{{
SurfaceViewer: thread blocked indefinitely
}}}
The same conditions apply: must be -threaded, must have -N2, must be on
powerpc.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/2282>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs