Opened 6 years ago

Closed 15 months ago

#2282 closed bug (worksforme)

threaded runtime system crashes on powerpc with -N2

Reported by: malcolm.wallace@… Owned by:
Priority: normal Milestone:
Component: Runtime System Version: 6.8.2
Keywords: Cc:
Operating System: MacOS X Architecture: powerpc
Type of failure: None/Unknown Difficulty: Unknown
Test Case: Blocked By:
Blocking: Related Tickets:

Description

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.

Attachments (1)

CaseTables.tar.gz (21.3 KB) - added by malcolm.wallace@… 6 years ago.
complete sources

Download all attachments as: .zip

Change History (12)

comment:1 Changed 6 years ago by thorkilnaur

Attempting to reproduce, I run into a darcs error probably caused by:

$ wget -x http://www.cs.york.ac.uk/fp/darcs/CaseTables/_darcs/patches/20080513151258-6871e-5c20436f99b8e3b17bab6771995e4e8c9552978f.gz
--05:57:04--  http://www.cs.york.ac.uk/fp/darcs/CaseTables/_darcs/patches/20080513151258-6871e-5c20436f99b8e3b17bab6771995e4e8c9552978f.gz
           => `www.cs.york.ac.uk/fp/darcs/CaseTables/_darcs/patches/20080513151258-6871e-5c20436f99b8e3b17bab6771995e4e8c9552978f.gz'
Resolving www.cs.york.ac.uk... 144.32.40.18
Connecting to www.cs.york.ac.uk|144.32.40.18|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
05:57:04 ERROR 403: Forbidden.

Best regards
Thorkil

comment:2 Changed 6 years ago by simonmar

  • Difficulty set to Unknown

It might be a while before we can track down this bug, and I assume that the darcs repository will change in the future. Malcolm, could you tar up the exact source tree used to reproduce the bug and attach it to this ticket? Thanks.

Changed 6 years ago by malcolm.wallace@…

complete sources

comment:3 Changed 6 years ago by malcolm.wallace@…

Source code attached in a tarfile. The test data must still be downloaded separately, since it is too large to attach to the ticket.

comment:4 Changed 6 years ago by igloo

  • Milestone set to 6.10.1

comment:5 Changed 6 years ago by thorkilnaur

I have tried several combinations of machines/OS X versions and GHC versions and consistently succeeded in running your program. But the PPC machines that I have are single-core, so this is probably naive.

I presume that you use a multi-core machine of some kind? Could you supply some additional details please? Also about the source of the GHC 6.8.2 that you use? (For example, is it some binary, from MacPorts, built from a source distribution or something else entirely?)

Thanks and best regards
Thorkil

comment:6 Changed 6 years ago by igloo

  • Milestone changed from 6.10.1 to 6.10 branch

comment:7 Changed 5 years ago by igloo

  • Milestone changed from 6.10 branch to 6.12 branch
  • Priority changed from normal to low

low priority as not a tier 1 arch.

comment:8 Changed 4 years ago by igloo

  • Milestone changed from 6.12 branch to 6.12.3

comment:9 Changed 4 years ago by igloo

  • Milestone changed from 6.12.3 to _|_
  • Priority changed from low to normal
  • Type of failure set to None/Unknown

comment:10 Changed 15 months ago by morabbin

Do we have anyone out there using GHC on multicore PPC?

comment:11 Changed 15 months ago by simonmar

  • Resolution set to worksforme
  • Status changed from new to closed

Let's close it. If the bug actually exists and someone runs into it, we can reopen.

Note: See TracTickets for help on using tickets.