Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
GHC
GHC
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 4,322
    • Issues 4,322
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 362
    • Merge Requests 362
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Security & Compliance
    • Security & Compliance
    • Dependency List
    • License Compliance
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Glasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #11978

Closed
Open
Opened Apr 24, 2016 by Carter Schonwald@carterDeveloper

running a profiled build of shake test suite with rts args +RTS -hb -N10 triggers SIGSEGV

on my 4 core macbook pro i can reliably get a sigsegv when running the shake test suite with profiling enabled and the RTS flags +RTS -hb -N10

steps to reproduce (with either ghc 7.10.3 or an 8.0 RC4 build)

cabal get --source shake
cd shake
#  shake master  was commit f0c0ce8d4c2c017b9a26b5d4258e07d881f4cde1 as of time of testing
# but problem should happen with eg 0.15.6 too
cabal install # this is so that the shake test suite can fine the right template file
cabal install --only-dep --enable-tests --enable-profiling  
./dist/build/shake-test/shake-test   +RTS -hb -N10

this last command yields the error

******************************************************************
** Running shake test suite, run with '--help' to see arguments **
******************************************************************
fish: './dist/build/shake-test/shake-t…' terminated by signal SIGSEGV (Address boundary error)

i can also trigger the bug reported in #4820 (closed) by running the test suite with the -hr flag rather than -hb

I'm marking this as HIGHEST so it can be discussed, because the profiiling build of the shake test suite only seems to crash *if* the test suite is run with -hb or -hr flags, which seems like a pretty nasty bug (which colleagues have it in other code)

nb: ./dist/build/shake-test/shake-test +RTS -N10 runs into a not enough stack space error before the shake test suite completes, but ./dist/build/shake-test/shake-test +RTS -K1G -N10 seems to work fine, though the crashes happen super early in the gargantuan test suite

the analogous output for reproducing #4820 (closed) is :

./dist/build/shake-test/shake-test   +RTS  -hr  -N10
******************************************************************
** Running shake test suite, run with '--help' to see arguments **
******************************************************************
Longest file modification time lag was 1005ms
## BUILD tar test
## TESTING tar
## BUILD tar --abbrev=output=$OUT -j3
Writing report to $OUT/tar/report.html
Build completed in 0:01m
## BUILD tar --no-build --report=-
Warning: No want/action statements, nothing to do
Writing report to output/tar/report.html
Writing report to -
* This database has tracked 1 runs.
* There are 4 rules (4 rebuilt in the last run).
* Building required 1 traced commands (1 in the last run).
* The total (unparallelised) time is 0.01s of which 0.01s is traced commands.
* The longest rule takes 0.01s (output/tar/result.tar), and the longest traced command takes 0.01s (tar).
* Last run gave an average parallelism of 0.44 times over 0.01s.
Build completed in 0:01m
## BUILD tar
Writing report to output/tar/report.html
Build completed in 0:01m
## FINISHED TESTING tar
## BUILD self test
## TESTING self
## BUILD self --abbrev=output=$OUT -j3
Writing report to $OUT/self/report.html
Build completed in 0:01m
## BUILD self --no-build --report=-
Warning: No want/action statements, nothing to do
Writing report to output/self/report.html
Writing report to -
* This database has tracked 2 runs.
* There are 460 rules (2 rebuilt in the last run).
* Building required 56 traced commands (1 in the last run).
* The total (unparallelised) time is 22.73s of which 22.33s is traced commands.
* The longest rule takes 1.11s (output/self/Development/Shake/Types.o output/self/Development/Shake/Types.hi), and the longest traced command takes 1.11s (ghc).
* Last run gave an average parallelism of 0.78 times over 0.05s.
Build completed in 0:01m
## BUILD self
shake-test: internal error: Invalid object in isRetainer(): 39
    (GHC version 8.0.0.20160421 for x86_64_apple_darwin)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug 
Edited Mar 10, 2019 by Carter Schonwald
Assignee
Assign to
8.0.2
Milestone
8.0.2 (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: ghc/ghc#11978