
#9728: ghci: internal error: ASSERTION FAILED: file rts/Interpreter.c, line 773 -------------------------------------+------------------------------------- Reporter: slyfox | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: GHCi | Version: 7.9 Keywords: | Operating System: Architecture: Unknown/Multiple | Unknown/Multiple Difficulty: Unknown | Type of failure: Runtime Blocked By: | crash Related Tickets: | Test Case: ghcirun002 | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- It's a ghc-HEAD on amd64 ./configure --enable-unregisterised. One of faulty tests is a: {{{ ghc-unreg/testsuite/tests/ghci/should_run $ '/home/slyfox/dev/git/ghc- unreg/inplace/bin/ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno- debug-output -no-user-package-db -rtsopts -optc-fno-builtin -fno-warn-tabs -fno-ghci-history ghcirun002.hs --interactive -v0 -ignore-dot-ghci +RTS -I0.1 -RTS *Main> main (<interactive>: internal error: ASSERTION FAILED: file rts/Interpreter.c, line 773 (GHC version 7.9.20141020 for x86_64_unknown_linux) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug Aborted }}} The assertion failure is triggered by stack overflow check when handling ... stack overflow! {{{ // Stack check if (Sp - INTERP_STACK_CHECK_THRESH < SpLim) { Sp -= 2; Sp[1] = (W_)obj; Sp[0] = (W_)&stg_apply_interp_info; // placeholder, really /* 773 */ RETURN_TO_SCHEDULER(ThreadInterpret, StackOverflow); } /* ... RETURN_TO_SCHEDULER decl: */ #define RETURN_TO_SCHEDULER(todo,retcode) \ /* this triggers assert */ SAVE_STACK_POINTERS; \ cap->r.rCurrentTSO->what_next = (todo); \ threadPaused(cap,cap->r.rCurrentTSO); \ cap->r.rRet = (retcode); \ return cap; /* ... SAVE_STACK_POINTERS decl: */ #define SAVE_STACK_POINTERS \ ASSERT(Sp > SpLim); \ cap->r.rCurrentTSO->stackobj->sp = Sp }}} In our case '''Sp == SpLim'''. That means we have written one word out-of-stack-bounds, right? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9728 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler