[GHC] #11978: running a profiled build of shake test suite with rts args +RTS -hb -N10 triggers SIGSEV
GHC
ghc-devs at haskell.org
Sun Apr 24 21:27:49 UTC 2016
#11978: running a profiled build of shake test suite with rts args +RTS -hb -N10
triggers SIGSEV
----------------------------------------+---------------------------------
Reporter: carter | Owner:
Type: bug | Status: new
Priority: highest | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: MacOS X
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets: 4820
Differential Rev(s): | Wiki Page:
----------------------------------------+---------------------------------
on my 4 core macbook pro i can reliably get a sigsev 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 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 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
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11978>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list