#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