Bug 36636

Summary: Random crash when switching windows with Alt+Tab in KDE KWin
Product: xorg Reporter: Jure Repinc <jlp.bugs>
Component: Server/Ext/GLXAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: critical    
Priority: medium    
Version: 7.6 (2010.12)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 31018    
Attachments:
Description Flags
dmesg
none
lspci
none
Xorg.0.log.old none

Description Jure Repinc 2011-04-27 06:15:51 UTC
First I must say that I'm not sure if I selected the right component for the bug report, since I'm not sure where the problem is. I selectec lib/GLX as it is what stands out from backtrace in xorg.0.log.old file.

Here is what happens: Sometimes when I use Alt+Tab to switch to another window X just crashes and I'm returned to KDM login screen. Ususally I have to use the laptop for a couple of hours before this happens. It appears that it happens sooner if I use more OpenGL apps.

I can't see much of the info anywhere when this happens. nothing in dmesg or elsewhere, just the backtrace from xorg.0.log.old. Is there anything I can do for a more usefull report?

My system is: eMachines E640G laptop with integrated ATI Mobility Radeon 5470 graphics.
Software: Mesa, libdrm, xf86-video-ati from git, Xorg server 1.10.1, KDE SC 4.6.2, Linux kernel 2.6.39-rc4
Comment 1 Jure Repinc 2011-04-27 06:16:57 UTC
Created attachment 46119 [details]
dmesg
Comment 2 Jure Repinc 2011-04-27 06:18:03 UTC
Created attachment 46120 [details]
lspci
Comment 3 Jure Repinc 2011-04-27 06:18:46 UTC
Created attachment 46121 [details]
Xorg.0.log.old
Comment 4 Jure Repinc 2011-04-29 14:06:12 UTC
I finally had the opportunity to connect over SSH to run Xorg in debug and this is what I got when it crashed:

Program received signal SIGSEGV, Segmentation fault.
0x0000000004434930 in ?? ()
(gdb) bt full
#0  0x0000000004434930 in ?? ()
No symbol table info available.
#1  0x00007ff2239fb6cc in DrawableGone (glxPriv=0x4c1b200, xid=<value optimized out>)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/glx/glxext.c:171
        c = <value optimized out>
        next = <value optimized out>
#2  0x000000000044e53b in FreeResource (id=23614424, skipDeleteFuncType=0)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/resource.c:596
        rtype = <value optimized out>
        cid = <value optimized out>
        res = 0x644eff0
        prev = 0x3b8f380
        head = 0x3b8f380
        elements = 2734
#3  0x000000000042d8d6 in ProcFreePixmap (client=0x1e32770)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/dispatch.c:1438
        pMap = 0x4f26030
        rc = <value optimized out>
        stuff = 0x47162f0
#4  0x0000000000431ab1 in Dispatch () at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/dispatch.c:431
        clientReady = 0x1da7ba0
        result = <value optimized out>
        client = 0x1e32770
        nready = 0
        icheck = 0x7ec170
        start_tick = 2572380
#5  0x000000000042628d in main (argc=10, argv=<value optimized out>, envp=<value optimized out>)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/main.c:287
        i = <value optimized out>
        alwaysCheckForInput = {0, 1}
(gdb) c
Continuing.

Program received signal SIGABRT, Aborted.
0x0000003191234c55 in raise () from /lib64/libc.so.6
(gdb) bt full
#0  0x0000003191234c55 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x0000003191236125 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x00000000004666ee in OsAbort () at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/os/utils.c:1241
No locals.
#3  0x0000000000471e0c in ddxGiveUp ()
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/hw/xfree86/common/xf86Init.c:915
        i = <value optimized out>
#4  0x000000000046321d in AbortServer () at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/os/log.c:410
No locals.
#5  0x0000000000463435 in FatalError (f=0x578090 "Caught signal %d (%s). Server aborting\n")
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/os/log.c:536
        args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff8891a5a0, reg_save_area = 0x7fff8891a4e0}}
        beenhere = 1
#6  0x000000000046421e in OsSigHandler (signo=11, sip=<value optimized out>, unused=<value optimized out>)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/os/osinit.c:153
No locals.
#7  OsSigHandler (signo=11, sip=<value optimized out>, unused=<value optimized out>)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/os/osinit.c:115
No locals.
#8  <signal handler called>
No symbol table info available.
#9  0x0000000004434930 in ?? ()
No symbol table info available.
#10 0x00007ff2239fb6cc in DrawableGone (glxPriv=0x4c1b200, xid=<value optimized out>)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/glx/glxext.c:171
        c = <value optimized out>
        next = <value optimized out>
#11 0x000000000044e53b in FreeResource (id=23614424, skipDeleteFuncType=0)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/resource.c:596
        rtype = <value optimized out>
        cid = <value optimized out>
        res = 0x644eff0
        prev = 0x3b8f380
        head = 0x3b8f380
        elements = 2734
#12 0x000000000042d8d6 in ProcFreePixmap (client=0x1e32770)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/dispatch.c:1438
        pMap = 0x4f26030
        rc = <value optimized out>
        stuff = 0x47162f0
#13 0x0000000000431ab1 in Dispatch () at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/dispatch.c:431
        clientReady = 0x1da7ba0
        result = <value optimized out>
        client = 0x1e32770
        nready = 0
        icheck = 0x7ec170
        start_tick = 2572380
---Type <return> to continue, or q <return> to quit---
#14 0x000000000042628d in main (argc=10, argv=<value optimized out>, envp=<value optimized out>)
    at /var/tmp/portage/x11-base/xorg-server-1.10.1/work/xorg-server-1.10.1/dix/main.c:287
        i = <value optimized out>
        alwaysCheckForInput = {0, 1}
Comment 5 Jeremy Huddleston Sequoia 2011-09-24 22:40:00 UTC
I believe this was fixed by 6a433b67ca15fd1ea58334e607f867554f227451 which was in 1.10.1.901 and later.


commit 6a433b67ca15fd1ea58334e607f867554f227451
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Mar 28 12:30:09 2011 -0400

    glx: Fix lifetime tracking for pixmaps
    
    GLX pixmaps take a reference on the underlying pixmap; X and GLX pixmap
    IDs can be destroyed in either order with no error.  Only windows need
    to be tracked under both XIDs.
    
    Fixes piglit/glx-pixmap-life.
    
    Reviewed-by: Michel Dänzer <michel@daenzer.net>
    Signed-off-by: Adam Jackson <ajax@redhat.com>

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.