Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,251
    • Issues 5,251
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 561
    • Merge requests 561
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #15508
Closed
Open
Issue created Aug 12, 2018 by Ömer Sinan Ağacan@osa1Maintainer

concprog001 fails with various errors

I'm observing a few different runtime errors. I'm not sure if they're because of different bugs so I'm filing one ticket for now.

The reproduce with GHC HEAD:

prog001 git:(master) $ ghc-stage2 Mult.hs -prof -fprof-auto -fforce-recomp -threaded
[1 of 7] Compiling Stream           ( Stream.hs, Stream.o )
[2 of 7] Compiling Converter        ( Converter.hs, Converter.o )
[3 of 7] Compiling Thread           ( Thread.hs, Thread.o )
[4 of 7] Compiling Utilities        ( Utilities.hs, Utilities.o )
[5 of 7] Compiling Trit             ( Trit.hs, Trit.o )
[6 of 7] Compiling Arithmetic       ( Arithmetic.hs, Arithmetic.o )
[7 of 7] Compiling Main             ( Mult.hs, Mult.o )
Linking Mult ...

prog001 git:(master) $ ./Mult +RTS -N2
Mult: internal error: scavenge_one: strange object 624722688
    (GHC version 8.7.20180809 for x86_64_unknown_linux)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
zsh: abort (core dumped)  ./Mult +RTS -N2

prog001 git:(master) $ ./Mult +RTS -N2
Mult: internal error: scavenge_stack: weird activation record found on stack: 0
    (GHC version 8.7.20180821 for x86_64_unknown_linux)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
zsh: abort (core dumped)  ./Mult +RTS -N2

prog001 git:(master) $ ./Mult +RTS -N2
zsh: segmentation fault (core dumped)  ./Mult +RTS -N2

It's very easy to trigger other kind of panics in concprog001, just try different compile and runtime flag combinations. Note that for the examples below you'll need debug + profiling or debug + profiling + threaded runtimes, which are not built by default. To build those apply this patch:

diff --git a/mk/config.mk.in b/mk/config.mk.in
index 11050120d4..f083abad22 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -297,6 +297,7 @@ GhcRTSWays=l
 
 # Usually want the debug version
 GhcRTSWays += debug
+GhcRTSWays += thr_debug_p debug_p
 
 # We always have the threaded versions, but note that SMP support may be disabled
 # (see GhcWithSMP).
diff --git a/rts/ghc.mk b/rts/ghc.mk
index 532c9aa175..ff3f18f30c 100644
--- a/rts/ghc.mk
+++ b/rts/ghc.mk
@@ -329,7 +329,6 @@ WARNING_OPTS += -Wstrict-prototypes
 WARNING_OPTS += -Wmissing-prototypes 
 WARNING_OPTS += -Wmissing-declarations
 WARNING_OPTS += -Winline
-WARNING_OPTS += -Waggregate-return
 WARNING_OPTS += -Wpointer-arith
 WARNING_OPTS += -Wmissing-noreturn
 WARNING_OPTS += -Wnested-externs

Examples:

prog001 git:(master) $ ghc-stage2 Mult.hs -prof -fprof-auto -fforce-recomp -debug
[1 of 7] Compiling Stream           ( Stream.hs, Stream.o )
[2 of 7] Compiling Converter        ( Converter.hs, Converter.o )
[3 of 7] Compiling Thread           ( Thread.hs, Thread.o )
[4 of 7] Compiling Utilities        ( Utilities.hs, Utilities.o )
[5 of 7] Compiling Trit             ( Trit.hs, Trit.o )
[6 of 7] Compiling Arithmetic       ( Arithmetic.hs, Arithmetic.o )
[7 of 7] Compiling Main             ( Mult.hs, Mult.o )
Linking Mult ...

prog001 git:(master) $ ./Mult +RTS -DS
Mult: internal error: ASSERTION FAILED: file rts/sm/Sanity.c, line 210

    (GHC version 8.7.20180809 for x86_64_unknown_linux)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
zsh: abort (core dumped)  ./Mult +RTS -DS

(I tried to fix this in D5051 but it's causing a segfault in test T11108 when run with profiling. Not sure what the problem is yet.)

Another way:

prog001 git:(master) $ ghc-stage2 Mult.hs -prof -fprof-auto -fforce-recomp -threaded
[1 of 7] Compiling Stream           ( Stream.hs, Stream.o )
[2 of 7] Compiling Converter        ( Converter.hs, Converter.o )
[3 of 7] Compiling Thread           ( Thread.hs, Thread.o )
[4 of 7] Compiling Utilities        ( Utilities.hs, Utilities.o )
[5 of 7] Compiling Trit             ( Trit.hs, Trit.o )
[6 of 7] Compiling Arithmetic       ( Arithmetic.hs, Arithmetic.o )
[7 of 7] Compiling Main             ( Mult.hs, Mult.o )
Linking Mult ...

prog001 git:(master) $ ./Mult +RTS -N2
zsh: segmentation fault (core dumped)  ./Mult +RTS -N2

Yet another way:

prog001 git:(master) $ ghc-stage2 Mult.hs -prof -fprof-auto -fforce-recomp -threaded -debug
[1 of 7] Compiling Stream           ( Stream.hs, Stream.o )
[2 of 7] Compiling Converter        ( Converter.hs, Converter.o )
[3 of 7] Compiling Thread           ( Thread.hs, Thread.o )
[4 of 7] Compiling Utilities        ( Utilities.hs, Utilities.o )
[5 of 7] Compiling Trit             ( Trit.hs, Trit.o )
[6 of 7] Compiling Arithmetic       ( Arithmetic.hs, Arithmetic.o )
[7 of 7] Compiling Main             ( Mult.hs, Mult.o )
Linking Mult ...

prog001 git:(master) $ ./Mult +RTS -N2
Mult: internal error: invalid closure, info=0x947edc
    (GHC version 8.7.20180809 for x86_64_unknown_linux)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
zsh: abort (core dumped)  ./Mult +RTS -N2

~~It seems to work fine when not compiled for profiling so marking this bug as a profiler bug.~~

This program fails sanity checks with non-threaded and non-profiling runtime too:

prog001 git:(master) $ ghc-stage2 Mult.hs -fforce-recomp -debug -rtsopts
[1 of 7] Compiling Stream           ( Stream.hs, Stream.o )
[2 of 7] Compiling Converter        ( Converter.hs, Converter.o )
[3 of 7] Compiling Thread           ( Thread.hs, Thread.o )
[4 of 7] Compiling Utilities        ( Utilities.hs, Utilities.o )
[5 of 7] Compiling Trit             ( Trit.hs, Trit.o )
[6 of 7] Compiling Arithmetic       ( Arithmetic.hs, Arithmetic.o )
[7 of 7] Compiling Main             ( Mult.hs, Mult.o )
Linking Mult ...

prog001 git:(master) $ ./Mult +RTS -DS
Mult: internal error: checkClosure: stack frame
    (GHC version 8.7.20180821 for x86_64_unknown_linux)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
zsh: abort (core dumped)  ./Mult +RTS -DS
Edited Mar 10, 2019 by Ömer Sinan Ağacan
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking