Skip to content

T2783 fails with the threaded1 way

When running ./validate --slow the other day, I saw the XXX test failing with the threaded1 way. Instead of detecting the loop and aborting with an informative message, we get an assertion failure in the rts/ThreadPaused.c:threadPaused function.

The program:

main = print $ do x <- [ 0 .. 5 ] ; let { y = 5 - y } ; return y

The output:

=====> T2783(threaded1) 1 of 1 [0, 0, 0]
cd "./rts/T2783.run" &&  "/home/alp/ghc/inplace/test   spaces/ghc-stage2" -o T2783 T2783.hs -dcore-lint -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations -fshow-warning-groups -fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output  -threaded -debug 
cd "./rts/T2783.run" && ./T2783  
Wrong exit code for T2783(threaded1)(expected 1 , actual 134 )
Stderr ( T2783 ):
T2783: internal error: ASSERTION FAILED: file rts/ThreadPaused.c, line 314
  
    (GHC version 8.5.20180306 for x86_64_unknown_linux)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
Aborted (core dumped)
*** unexpected failure for T2783(threaded1)

The code for the corresponding assertion:

// We should never have made it here in the event of blackholes that
// we already own; they should have been marked when we blackholed
// them and consequently we should have stopped our stack walk
// above.
ASSERT(!((bh_info == &stg_BLACKHOLE_info)
         && (((StgInd*)bh)->indirectee == (StgClosure*)tso)));

This seems to be an actual problem, hence this ticket.

Trac metadata
Trac field Value
Version 8.5
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Runtime System
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system Linux
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information