[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#524558: marked as done (Occasional X hangs where drmCommandWrite() never returns)



Your message dated Sat, 5 Mar 2011 22:29:48 +0100
with message-id <20110305212948.GG19769@debian.org>
and subject line Re: Bug#524558: Occasional X hangs where drmCommandWrite() never returns
has caused the Debian Bug report #524558,
regarding Occasional X hangs where drmCommandWrite() never returns
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
524558: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=524558
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
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



--- End Message ---
--- Begin Message ---
Hi,

Sami Liedes <sliedes@cc.hut.fi> (05/03/2011):
> I'm nowadays using UXA with X from sid. As this bug only occured
> with EXA, hard to say. I haven't seen freezes lately. I guess UXA
> will be the long term solution anyway.

at least for the time being I guess. Closing accordingly, thanks for
the follow-up.

KiBi.

Attachment: signature.asc
Description: Digital signature


--- End Message ---

Reply to: