Bug 10639

Summary: Recursive Xkb SIGSEGV causes system hang.
Product: xorg Reporter: Thomas Hellström <thomas>
Component: Server/GeneralAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: critical    
Priority: medium    
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Thomas Hellström 2007-04-13 10:48:52 UTC
When the X server receives a SIGSEGV and calls FatalError from the signal handler,
a second SIGSEGV from within the handler causes a complete system hang.

Backtrace:
(The first SIGSEGV was generated using a killall -SEGV X from within KDE).

Program received signal SIGSEGV, Segmentation fault.
XkbEnableDisableControls (xkbi=0x8256fc8, change=542, newValues=512, changes=0x0,
    cause=0xbf9b14d4) at xkbUtils.c:748
748         ctrls= xkbi->desc->ctrls;
(gdb) where
#0  XkbEnableDisableControls (xkbi=0x8256fc8, change=542, newValues=512,
    changes=0x0, cause=0xbf9b14d4) at xkbUtils.c:748
#1  0x0818501a in XkbRemoveResourceClient (inDev=0x82503e8, id=1088421888)
    at xkbEvents.c:1014
#2  0x0807e462 in CloseDevice (dev=0x82503e8) at devices.c:512
#3  0x0807e6a9 in CloseDownDevices () at devices.c:530
#4  0x081b18c3 in AbortServer () at log.c:408
#5  0x081b1dd6 in FatalError (f=0x81bc294 "Caught signal %d.  Server aborting\n")
    at log.c:555
#6  0x080bed6d in xf86SigHandler (signo=11) at xf86Events.c:771
#7  <signal handler called>
#8  0xffffe410 in __kernel_vsyscall ()
#9  0xb7d0925d in select () from /lib/i686/libc.so.6
#10 0x081a49f3 in WaitForSomething (pClientsReady=0xbf9b1ba0) at WaitFor.c:238
#11 0x08085e42 in Dispatch () at dispatch.c:425
#12 0x0806d825 in main (argc=8, argv=0xbf9b20d4, envp=0x0) at main.c:467
(gdb)    

A subsequent step causes a complete system hang.
Comment 1 Daniel Stone 2007-11-06 17:58:36 UTC
fix pushed to master and 1.4 branch

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.