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 |