[GHC] #7629: segmentation fault in compiled program, involves gtk, selinux

GHC cvs-ghc at haskell.org
Tue Mar 26 18:28:42 CET 2013


#7629: segmentation fault in compiled program, involves gtk, selinux
-----------------------------------------------------------------+----------
    Reporter:  wgmitchener                                       |       Owner:  simonmar     
        Type:  bug                                               |      Status:  infoneeded   
    Priority:  high                                              |   Milestone:  7.6.2        
   Component:  Runtime System                                    |     Version:  7.4.2        
    Keywords:  segmentation fault, multithreading, selinux, gtk  |          Os:  Linux        
Architecture:  x86                                               |     Failure:  Runtime crash
  Difficulty:  Unknown                                           |    Testcase:               
   Blockedby:                                                    |    Blocking:               
     Related:                                                    |  
-----------------------------------------------------------------+----------

Comment(by wgmitchener):

 Maybe it's not an 8 byte problem.  If the callback is eventually supposed
 to call adjustorCode, then the error is even weirder:

 On Fedora 17, (SE, GHC 742), in just_invoke_callback (ghc-bug-003),
 tracing through...

 Inside createAdjustor in ghc-7.4.2/rts/Adjustor.c, the AdjustorStub code
 that is generated at line 386 :-o is

 {{{
 (gdb) disas /r adjustorStub,+5
 Dump of assembler code from 0xb7ffc02c to 0xb7ffc031:
    0xb7ffc02c:  e8 87 a4 22 50  call   0x82264b8 <adjustorCode>
 End of assembler dump.
 }}}

 e8 is the opcode for an ip-relative jump.

 The same bytes during set_callback and just_invoke_callback are
 interpreted differently for some reason:

 {{{
 (gdb) print adjustorCode
 $20 = {<text variable, no debug info>} 0x82264b8 <adjustorCode>

 (gdb) disas /r *p_callback,+5
 Dump of assembler code from 0xb7ffd02c to 0xb7ffd031:
    0xb7ffd02c:  e8 87 a4 22 50  call   0x82274b8   <- off by 0x1000 from
 adjustorCode
 End of assembler dump.
 }}}

 which means something hideous has happened.

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



More information about the ghc-tickets mailing list