[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