#7185: Compiled program crashes
---------------------------+------------------------------------------------
 Reporter:  waldheinz      |          Owner:                
     Type:  bug            |         Status:  new           
 Priority:  normal         |      Component:  Compiler      
  Version:  7.4.1          |       Keywords:                
       Os:  Linux          |   Architecture:  x86_64 (amd64)
  Failure:  Runtime crash  |       Testcase:                
Blockedby:                 |       Blocking:                
  Related:                 |  
---------------------------+------------------------------------------------
 I have a program which compiles fine, but the resulting executable
 crashes. First the steps to reproduce:

 {{{
 git clone g...@github.com:waldheinz/bling.git
 git checkout e2bad3ca6be2409386d28796997709318cf6ff64
 cabal configure
 cabal build
 ./dist/build/bling/bling examples/cornell-box-underwater.bling
 }}}

 This will result in either a segfault or produce an "internal error"
 message, at least for me and two other who tried it as well. The error
 message is

 {{{
 bling: internal error: scavenge_one: strange object -1083673327
     (GHC version 7.7.20120823 for x86_64_unknown_linux)
 }}}

 The "strange object" varies. Some random observations which might be
 useful:

   * this happens with GHC 7.4.1 and a fresh compile of HEAD (GHC version
 7.7.20120823)
   * I sanitized the code to be completely free of unsafe* function calls.
 Before, there was quite some unsafe array reading/writing using the vector
 package. This did not change anything, but the revision above reflects
 this "safe" state, just in case...
   * the problem first occured when I change the SPPM.mkHash function to
 use the Utils.GrowVec type instead of lists for it's intermediate results.
 [1] GrowVec is basically a wrapper around a vector which doubles the size
 when space is exhausted.
   * the optimization level does not seem to affect the problem (it occurs
 even with -O0 and everything else removed)

 Running under GDB gives this stack trace:

 {{{
 #1  0x00000031d12370d8 in abort () from /lib64/libc.so.6
 #2  0x0000000000cb4765 in rtsFatalInternalErrorFn ()
 #3  0x0000000000cb48dd in barf ()
 #4  0x0000000000cd30e9 in scavenge_one ()
 #5  0x0000000000cd3645 in scavenge_mutable_list ()
 #6  0x0000000000cd3835 in scavenge_capability_mut_lists ()
 #7  0x0000000000cb98bc in GarbageCollect ()
 #8  0x0000000000cac043 in scheduleDoGC.isra.20 ()
 #9  0x0000000000cacabf in scheduleWaitThread ()
 #10 0x0000000000cb683e in real_main ()
 #11 0x0000000000cb693a in hs_main ()
 #12 0x0000000000407003 in main ()
 }}}

 I'm currently trying to debug this further, but my abilities on this front
 are limited...

 [1]
 
https://github.com/waldheinz/bling/commit/e1dc7b3c7e66cdd21a5aa46f9f96ca9448c52407#commitcomment-1761893

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7185>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to