Package: libdrm2
Version: 2.4.9-1
Severity: normal

Hi,

I saw this sometimes on KDE 3, now it happens many times a day on KDE
4 from unstable, so I spent some time figuring out what actually
happens (backtrace attached). I think I've also seen it both on an
Intel graphics card and a Radeon (with the libre driver), although
lately I've only been using the Intel card, and this backtrace is from
that setup.

The symptoms:

X hangs in such a way that only the mouse pointer moves, but nothing
else ever happens. X does not respond to keyboard events (caps lock
led does not toggle, ctrl-alt-backspace does not zap server). Even
changing to a different vt with ctrl-alt-F1 does not work. The only
way out seems to be to kill the X server with the magic sysrq SAK
(alt-sysrq-k) command or to kill X from a remote console. Even this
usually leaves the screen in a broken state. There is nothing special
in dmesg.

Killing X clients while the server is hung has no effect. Nothing
changes on the screen, except the mouse pointer can be moved.

The details:

I don't seem to have a script of that now here, but I seem to remember
that the innermost function that never returns is drmIoctl(), but at
least drmCommandWrite() never returns. I don't know anything about the
functions, but my guess about the cause is the size parameter of
drmCommandWrite() that seems to me to be totally bogus
(18446744073709551615). See the backtraces (short and full) below.

Please mention if there's something more I can do to help debug this,
or if you think I should rather report this upstream.

        Sami


------------------------------------------------------------
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu"...
Attaching to program: /usr/bin/Xorg, process 5152
Reading symbols from /usr/lib/libpciaccess.so.0...done.
Loaded symbols for /usr/lib/libpciaccess.so.0
Reading symbols from /lib/libdl.so.2...Reading symbols from 
/usr/lib/debug/lib/libdl-2.9.so...done.
done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libpthread.so.0...Reading symbols from 
/usr/lib/debug/lib/libpthread-2.9.so...done.
[Thread debugging using libthread_db enabled]
[New Thread 0x7f4269e5b790 (LWP 5152)]
done.
Loaded symbols for /lib/libpthread.so.0
Reading symbols from /usr/lib/libXfont.so.1...done.
Loaded symbols for /usr/lib/libXfont.so.1
Reading symbols from /usr/lib/libXau.so.6...done.
Loaded symbols for /usr/lib/libXau.so.6
Reading symbols from /usr/lib/libfontenc.so.1...done.
Loaded symbols for /usr/lib/libfontenc.so.1
Reading symbols from /usr/lib/libpixman-1.so.0...done.
Loaded symbols for /usr/lib/libpixman-1.so.0
Reading symbols from /usr/lib/libhal.so.1...done.
Loaded symbols for /usr/lib/libhal.so.1
Reading symbols from /usr/lib/libdbus-1.so.3...done.
Loaded symbols for /usr/lib/libdbus-1.so.3
Reading symbols from /usr/lib/libXdmcp.so.6...done.
Loaded symbols for /usr/lib/libXdmcp.so.6
Reading symbols from /usr/lib/libgcrypt.so.11...done.
Loaded symbols for /usr/lib/libgcrypt.so.11
Reading symbols from /lib/libaudit.so.0...done.
Loaded symbols for /lib/libaudit.so.0
Reading symbols from /lib/libselinux.so.1...done.
Loaded symbols for /lib/libselinux.so.1
Reading symbols from /lib/libm.so.6...Reading symbols from 
/usr/lib/debug/lib/libm-2.9.so...done.
done.
Loaded symbols for /lib/libm.so.6
Reading symbols from /lib/librt.so.1...Reading symbols from 
/usr/lib/debug/lib/librt-2.9.so...done.
done.
Loaded symbols for /lib/librt.so.1
Reading symbols from /lib/libc.so.6...Reading symbols from 
/usr/lib/debug/lib/libc-2.9.so...done.
done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /usr/lib/libz.so.1...done.
Loaded symbols for /usr/lib/libz.so.1
Reading symbols from /lib/ld-linux-x86-64.so.2...Reading symbols from 
/usr/lib/debug/lib/ld-2.9.so...done.
done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /usr/lib/libfreetype.so.6...done.
Loaded symbols for /usr/lib/libfreetype.so.6
Reading symbols from /usr/lib/libsmbios.so.2...done.
Loaded symbols for /usr/lib/libsmbios.so.2
Reading symbols from /usr/lib/libgpg-error.so.0...done.
Loaded symbols for /usr/lib/libgpg-error.so.0
Reading symbols from /usr/lib/libstdc++.so.6...done.
Loaded symbols for /usr/lib/libstdc++.so.6
Reading symbols from /lib/libgcc_s.so.1...done.
Loaded symbols for /lib/libgcc_s.so.1
Reading symbols from /usr/lib/xorg/modules/extensions/libextmod.so...Reading 
symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libextmod.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libextmod.so
Reading symbols from /usr/lib/xorg/modules/extensions/libdbe.so...Reading 
symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libdbe.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libdbe.so
Reading symbols from /usr/lib/xorg/modules/extensions/libglx.so...Reading 
symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libglx.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libglx.so
Reading symbols from /usr/lib/xorg/modules/extensions/librecord.so...Reading 
symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/librecord.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules/extensions//librecord.so
Reading symbols from /usr/lib/xorg/modules/extensions/libdri.so...Reading 
symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libdri.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libdri.so
Reading symbols from /usr/lib/libdrm.so.2...Reading symbols from 
/usr/lib/debug/usr/lib/libdrm.so.2.4.0...done.
done.
Loaded symbols for /usr/lib/libdrm.so.2
Reading symbols from /usr/lib/xorg/modules/extensions/libdri2.so...Reading 
symbols from /usr/lib/debug/usr/lib/xorg/modules/extensions/libdri2.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules/extensions//libdri2.so
Reading symbols from /usr/lib/xorg/modules/drivers/intel_drv.so...Reading 
symbols from /usr/lib/debug/usr/lib/xorg/modules/drivers/intel_drv.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules/drivers//intel_drv.so
Reading symbols from /usr/lib/libdrm_intel.so.1...done.
Loaded symbols for /usr/lib/libdrm_intel.so.1
Reading symbols from /usr/lib/xorg/modules/input/synaptics_drv.so...done.
Loaded symbols for /usr/lib/xorg/modules/input//synaptics_drv.so
Reading symbols from /usr/lib/xorg/modules/input/kbd_drv.so...done.
Loaded symbols for /usr/lib/xorg/modules/input//kbd_drv.so
Reading symbols from /usr/lib/xorg/modules/input/mouse_drv.so...done.
Loaded symbols for /usr/lib/xorg/modules/input//mouse_drv.so
Reading symbols from /usr/lib/xorg/modules/libvgahw.so...Reading symbols from 
/usr/lib/debug/usr/lib/xorg/modules/libvgahw.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules//libvgahw.so
Reading symbols from /usr/lib/xorg/modules/libfb.so...Reading symbols from 
/usr/lib/debug/usr/lib/xorg/modules/libfb.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules//libfb.so
Reading symbols from /usr/lib/xorg/modules/libexa.so...Reading symbols from 
/usr/lib/debug/usr/lib/xorg/modules/libexa.so...done.
done.
Loaded symbols for /usr/lib/xorg/modules//libexa.so
Reading symbols from /usr/lib/dri/i965_dri.so...done.
Loaded symbols for /usr/lib/dri/i965_dri.so
Reading symbols from /usr/lib/libexpat.so.1...done.
Loaded symbols for /usr/lib/libexpat.so.1
0x00007f42679ae0b7 in ioctl () from /lib/libc.so.6
(gdb) bt
#0  0x00007f42679ae0b7 in ioctl () from /lib/libc.so.6
#1  0x00007f4265ddb623 in drmIoctl (fd=11, request=1074029637, 
arg=0x7fff71e90cb0) at ../../libdrm/xf86drm.c:187
#2  0x00007f4265ddb8ab in drmCommandWrite (fd=11, drmCommandIndex=<value 
optimized out>, data=0x7fff71e90cb0, 
    size=18446744073709551615) at ../../libdrm/xf86drm.c:2371
#3  0x00007f42659487d8 in I830Sync (pScrn=0x81adc0) at 
../../src/i830_accel.c:212
#4  0x00007f4264acb4ec in exaWaitSync (pScreen=0x86abb0) at ../../exa/exa.c:1060
#5  0x00007f4264acc6e1 in ExaDoPrepareAccess (pDrawable=0x8857640, index=0) at 
../../exa/exa.c:509
#6  0x00007f4264ad13d9 in exaCopyDirty (migrate=0x7fff71e90fe0, 
pValidDst=0x831d9a0, pValidSrc=<value optimized out>, 
    transfer=0, fallback_src=0x8857680 "\207�������\207", 
fallback_dst=0x7f4263fc3a40 '\210' <repeats 200 times>..., 
    fallback_srcpitch=12, fallback_dstpitch=64, fallback_index=0, 
sync=0x7f4264acb500 <exaMarkSync>)
    at ../../exa/exa_migration.c:218
#7  0x00007f4264ad18dd in exaDoMoveInPixmap (migrate=0x7fff71e90fe0) at 
../../exa/exa_migration.c:274
#8  0x00007f4264ad20cf in exaDoMigration (pixmaps=0x7fff71e90fb0, npixmaps=3, 
can_accel=1) at ../../exa/exa_migration.c:683
#9  0x00007f4264ad3282 in exaTryDriverComposite (op=3 '\003', pSrc=0x723f010, 
pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, 
    ySrc=101, xMask=<value optimized out>, yMask=<value optimized out>, 
xDst=<value optimized out>, 
    yDst=<value optimized out>, width=<value optimized out>, height=<value 
optimized out>) at ../../exa/exa_render.c:640
#10 0x00007f4264ad3cbf in exaComposite (op=3 '\003', pSrc=0x723f010, 
pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, 
    xMask=0, yMask=0, xDst=1262, yDst=101, width=9, height=5) at 
../../exa/exa_render.c:935
#11 0x0000000000535818 in damageComposite (op=11 '\v', pSrc=0x723f010, 
pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, 
    xMask=-4, yMask=<value optimized out>, xDst=<value optimized out>, 
yDst=<value optimized out>, 
    width=<value optimized out>, height=<value optimized out>) at 
../../../miext/damage/damage.c:643
#12 0x00007f4264ad2f4a in exaTrapezoids (op=11 '\v', pSrc=0x723f010, 
pDst=0x7da03c0, maskFormat=0x86ef98, xSrc=1262, ySrc=101, 
    ntrap=0, traps=0x7efb520) at ../../exa/exa_render.c:1083
#13 0x0000000000530f3d in ProcRenderTrapezoids (client=0x4598310) at 
../../render/render.c:782
#14 0x000000000044d274 in Dispatch () at ../../dix/dispatch.c:437
#15 0x000000000043316d in main (argc=8, argv=0x7fff71e91548, envp=<value 
optimized out>) at ../../dix/main.c:397
(gdb) bt full
#0  0x00007f42679ae0b7 in ioctl () from /lib/libc.so.6
No symbol table info available.
#1  0x00007f4265ddb623 in drmIoctl (fd=11, request=1074029637, 
arg=0x7fff71e90cb0) at ../../libdrm/xf86drm.c:187
        ret = -1
#2  0x00007f4265ddb8ab in drmCommandWrite (fd=11, drmCommandIndex=<value 
optimized out>, data=0x7fff71e90cb0, 
    size=18446744073709551615) at ../../libdrm/xf86drm.c:2371
No locals.
#3  0x00007f42659487d8 in I830Sync (pScrn=0x81adc0) at 
../../src/i830_accel.c:212
        emit = {irq_seq = 0x7fff71e90cb0}
        wait = {irq_seq = 152042}
        ret = -4
        pI830 = (I830Ptr) 0x81cf10
#4  0x00007f4264acb4ec in exaWaitSync (pScreen=0x86abb0) at ../../exa/exa.c:1060
No locals.
#5  0x00007f4264acc6e1 in ExaDoPrepareAccess (pDrawable=0x8857640, index=0) at 
../../exa/exa.c:509
        pExaScr = (ExaScreenPrivPtr) 0x8705f0
        pPixmap = (PixmapPtr) 0x8857640
        offscreen = 1
#6  0x00007f4264ad13d9 in exaCopyDirty (migrate=0x7fff71e90fe0, 
pValidDst=0x831d9a0, pValidSrc=<value optimized out>, 
    transfer=0, fallback_src=0x8857680 "\207�������\207", 
fallback_dst=0x7f4263fc3a40 '\210' <repeats 200 times>..., 
    fallback_srcpitch=12, fallback_dstpitch=64, fallback_index=0, 
sync=0x7f4264acb500 <exaMarkSync>)
    at ../../exa/exa_migration.c:218
        pPixmap = (PixmapPtr) 0x8857640
        pExaPixmap = (ExaPixmapPrivPtr) 0x831d950
        damage = <value optimized out>
        CopyReg = {extents = {x1 = 0, y1 = 0, x2 = 9, y2 = 5}, data = 0x0}
        save_offscreen = 0
        save_pitch = 12
        pBox = (BoxPtr) 0x7fff71e90da0
        nbox = 0
        access_prepared = 0
        need_sync = 0
        __func__ = "exaCopyDirty"
        firsttime = 0
#7  0x00007f4264ad18dd in exaDoMoveInPixmap (migrate=0x7fff71e90fe0) at 
../../exa/exa_migration.c:274
        pPixmap = (PixmapPtr) 0x8857640
        pScreen = (ScreenPtr) 0x86abb0
#8  0x00007f4264ad20cf in exaDoMigration (pixmaps=0x7fff71e90fb0, npixmaps=3, 
can_accel=1) at ../../exa/exa_migration.c:683
        pExaScr = (ExaScreenPrivPtr) 0x8705f0
        i = 3
        j = <value optimized out>
        __func__ = "exaDoMigration"
#9  0x00007f4264ad3282 in exaTryDriverComposite (op=3 '\003', pSrc=0x723f010, 
pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, 
    ySrc=101, xMask=<value optimized out>, yMask=<value optimized out>, 
xDst=<value optimized out>, 
    yDst=<value optimized out>, width=<value optimized out>, height=<value 
optimized out>) at ../../exa/exa_render.c:640
        region = {extents = {x1 = 1262, y1 = 101, x2 = 1271, y2 = 106}, data = 
0x0}
        pbox = <value optimized out>
---Type <return> to continue, or q <return> to quit---
        nbox = <value optimized out>
        src_off_x = <value optimized out>
        src_off_y = <value optimized out>
        mask_off_x = <value optimized out>
        mask_off_y = <value optimized out>
        dst_off_x = 0
        dst_off_y = 0
        pSrcPix = (PixmapPtr) 0x76028d0
        pMaskPix = (PixmapPtr) 0x8857640
        pDstPix = (PixmapPtr) 0x88b9bd0
        pMaskExaPix = <value optimized out>
        scratch = {drawable = {type = 4 '\004', class = 0 '\0', depth = 0 '\0', 
bitsPerPixel = 0 '\0', id = 50331648, x = 64, 
    y = 0, width = 0, height = 0, pScreen = 0x0, serialNumber = 
139923133609216}, devPrivates = 0x88b9bd0, 
  refcnt = 1911099520, devKind = 32767, devPrivate = {ptr = 0x81adc0, val = 
8498624, uval = 8498624, fptr = 0x81adc0}, 
  screen_x = -17812, screen_y = 25772, usage_hint = 32578}
        pixmaps = {{as_dst = 1, as_src = 1, pPix = 0x88b9bd0, pReg = 0x0}, 
{as_dst = 0, as_src = 1, pPix = 0x76028d0, 
    pReg = 0x0}, {as_dst = 0, as_src = 1, pPix = 0x8857640, pReg = 0x0}}
#10 0x00007f4264ad3cbf in exaComposite (op=3 '\003', pSrc=0x723f010, 
pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, 
    xMask=0, yMask=0, xDst=1262, yDst=101, width=9, height=5) at 
../../exa/exa_render.c:935
        isSrcSolid = <value optimized out>
        pExaScr = (ExaScreenPrivPtr) 0x8705f0
        ret = <value optimized out>
        saveMaskRepeat = 0
        region = {extents = {x1 = 1262, y1 = 0, x2 = 0, y2 = 0}, data = 
0x870960}
#11 0x0000000000535818 in damageComposite (op=11 '\v', pSrc=0x723f010, 
pMask=0x6e095a0, pDst=0x7da03c0, xSrc=1262, ySrc=101, 
    xMask=-4, yMask=<value optimized out>, xDst=<value optimized out>, 
yDst=<value optimized out>, 
    width=<value optimized out>, height=<value optimized out>) at 
../../../miext/damage/damage.c:643
        ps = (PictureScreenPtr) 0x86f770
        pScrPriv = (DamageScrPrivPtr) 0x870960
#12 0x00007f4264ad2f4a in exaTrapezoids (op=11 '\v', pSrc=0x723f010, 
pDst=0x7da03c0, maskFormat=0x86ef98, xSrc=1262, ySrc=101, 
    ntrap=0, traps=0x7efb520) at ../../exa/exa_render.c:1083
        pPicture = <value optimized out>
        pScreen = <value optimized out>
        ps = (PictureScreenPtr) 0x86f770
        bounds = {x1 = 1262, y1 = 101, x2 = 1271, y2 = 106}
#13 0x0000000000530f3d in ProcRenderTrapezoids (client=0x4598310) at 
../../render/render.c:782
        pFormat = <value optimized out>
#14 0x000000000044d274 in Dispatch () at ../../dix/dispatch.c:437
        result = <value optimized out>
        client = (ClientPtr) 0x4598310
        nready = 0
        start_tick = 140840
#15 0x000000000043316d in main (argc=8, argv=0x7fff71e91548, envp=<value 
optimized out>) at ../../dix/main.c:397
        i = 1
        alwaysCheckForInput = {0, 1}
(gdb) q
The program is running.  Quit anyway (and detach it)? (y or n) y
Detaching from program: /usr/bin/Xorg, process 5152
------------------------------------------------------------

-- System Information:
Debian Release: squeeze/sid
  APT prefers oldstable
  APT policy: (500, 'oldstable'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.29.1-tuxonice (PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libdrm2 depends on:
ii  libc6                         2.9-7      GNU C Library: Shared libraries

libdrm2 recommends no packages.

libdrm2 suggests no packages.

-- no debconf information



--
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to