Bug 737840 - qxl driver causes xorg to hang
Summary: qxl driver causes xorg to hang
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: xorg-x11-drv-qxl
Version: 6.2
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: rc
: ---
Assignee: Søren Sandmann Pedersen
QA Contact: Desktop QE
URL:
Whiteboard:
: 741570 (view as bug list)
Depends On:
Blocks: 700392
TreeView+ depends on / blocked
 
Reported: 2011-09-13 08:49 UTC by Qunfang Zhang
Modified: 2014-06-18 09:14 UTC (History)
17 users (show)

Fixed In Version: xorg-x11-drv-qxl-0.0.14-9.el6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-12-06 15:08:44 UTC


Attachments (Terms of Use)
Xorg log after hangup (57.99 KB, application/octet-stream)
2011-09-14 11:22 UTC, Lubos Kocman
no flags Details


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2011:1621 normal SHIPPED_LIVE xorg-x11-drv-qxl bug fix and enhancement update 2011-12-06 00:50:59 UTC

Description Qunfang Zhang 2011-09-13 08:49:46 UTC
Description of problem:
Boot a RHEL6.2 guest installed with 20110907.1 tree, it will hang when booting with spice. If boot with vnc, then works well. Re-installed a guest with 20110823 tree, have no problem.

In 20110823.1 tree: xorg-x11-drv-qxl-0.0.14-5.el6
In 20110907.1 tree: xorg-x11-drv-qxl-0.0.14-6.el6

So, I file the bug against this component. Please correct me if I am wrong.

Version-Release number of selected component (if applicable):
xorg-x11-drv-qxl-0.0.14-6.el6

How reproducible:
Always

Steps to Reproduce:
1. Install a RHEL6.2 guest with 20110907.1 tree and install "Desktop" related packages.
2. Boot guest after finish installation.
3.
  
Actual results:
Guest hangs.

Expected results:
Guest should not hang.

Additional info:

Comment 2 Christophe Fergeau 2011-09-13 09:04:46 UTC
At what point does it hang exactly? Is there something displayed on the screen when it hangs?

Comment 3 Qunfang Zhang 2011-09-13 09:14:46 UTC
(In reply to comment #2)
> At what point does it hang exactly? Is there something displayed on the screen
> when it hangs?

Did not see anything displayed. After log on guest, wait on the desktop and do nothing will hit this problem after a while. If we hot plug one disk to guest, will hit this problem at once.
At this moment, guest will consume 100% cpu.


  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                           
 9916 root      20   0 4898m 1.0g 4376 S 100.5 28.4   8:24.39 qemu-kvm                         
 9030 root      20   0  103m  11m 2980 S  1.7  0.3   1:02.24 sshd                              
   59 root      25   5     0    0    0 S  1.3  0.0   0:18.75 ksmd

Comment 4 Lubos Kocman 2011-09-14 07:45:26 UTC
Could you please provide package versions for qemu-kvm spice-server and spice-client? And also your qemu-kvm cmd-line options.

Comment 5 Qunfang Zhang 2011-09-14 07:55:44 UTC
(In reply to comment #4)
> Could you please provide package versions for qemu-kvm spice-server and
> spice-client? And also your qemu-kvm cmd-line options.

kernel-2.6.32-196.el6.x86_64
qemu-kvm-0.12.1.2-2.189.el6.x86_64
spice-server-0.8.2-3.el6.x86_64
spice-client-0.8.2-3.el6.x86_64

Cli:
/usr/libexec/qemu-kvm -M rhel6.2.0 -cpu cpu64-rhel6,+x2apic -enable-kvm -m 4096 -smp 4 -name RHEL6.2-64 -uuid 4b695c7e-3e0f-4f16-b1c0-ae1867ce8df6 -monitor stdio -rtc base=localtime -boot c -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x3 -drive file=/home/RHEL6.2-64-virtio.qcow2,if=none,id=virtio-drive-0,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,bus=pci.0,drive=virtio-drive-0,id=virtio0 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device rtl8139,netdev=hostnet0,id=net0,mac=00:1a:4a:10:20:12,bus=pci.0,addr=0x5 -chardev socket,id=charchannel0,path=/tmp/foo,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -usb -device usb-tablet -spice port=5930,disable-ticketing -k en-us -vga qxl -global qxl-vga.vram_size=67108864

Comment 6 Lubos Kocman 2011-09-14 11:22:02 UTC
Created attachment 523126 [details]
Xorg log after hangup

diff X.log X.log.after  # log before hang and after
822a823,825
> [   289.348] slots start: 1, slots end: 7
> [   289.348] done reset
> [   289.349] primary is 0x1c9d010

Comment 7 Lubos Kocman 2011-09-14 11:22:48 UTC
Forcing xdriver=vesa does not lead to this issue.

Comment 8 Lubos Kocman 2011-09-14 11:25:40 UTC
Anyway in my case hang happened right after anaconda gui started. I suppose that you've made text install right?

Comment 10 Qunfang Zhang 2011-09-15 02:29:58 UTC
(In reply to comment #8)
> Anyway in my case hang happened right after anaconda gui started. I suppose
> that you've made text install right?

No, I installed the guest with gui as well, not the text install. Guest did not hang during installation.

Comment 12 Christophe Fergeau 2011-09-15 08:28:28 UTC
Lubos, are you also using xorg-x11-drv-qxl-0.0.14-6.el6 ? If you restart the client, does the hang persist? Or are things back to normal?

Comment 13 Christophe Fergeau 2011-09-15 08:48:21 UTC
I forgot to ask whether this was a single screen configuration, or some kind of multiple screen setup?

Comment 14 Qunfang Zhang 2011-09-15 09:36:46 UTC
(In reply to comment #13)
> I forgot to ask whether this was a single screen configuration, or some kind of
> multiple screen setup?

Hi, Christophe
single screen configuration. After installation, I did nothing configuration. Just booting guest, cause the guest hang.

Comment 15 Christophe Fergeau 2011-09-16 12:52:49 UTC
Any of you tried restarting the client after getting the hang? I'd like to know whether the client becomes responsive again after one (or several restarts). I'm observing something like this, but I have no idea if it's the same bug as the one you're reporting.

Comment 16 Qunfang Zhang 2011-09-19 08:07:11 UTC
(In reply to comment #15)
> Any of you tried restarting the client after getting the hang? I'd like to know
> whether the client becomes responsive again after one (or several restarts).
> I'm observing something like this, but I have no idea if it's the same bug as
> the one you're reporting.

Restarting the client after getting the hang, guest will become responsive again.

Comment 17 Marian Krcmarik 2011-09-21 19:04:20 UTC
I am hitting this bug with xorg-x11-drv-qxl-0.0.14-7.el6, It seems that qxl driver causes Xorg server to end up in infinite loop so that CPU usage jumps to ~100% -> qemu process on host as well. It seems that something wrong about cursor since the cursor is not visible and look at xorg log and bt. It does become responsive after restarting client but only for a while. It prevents to test RHEL guest that's why I am marking as Testblocker and would appreciate any progress.

My xorg log snip:
[    49.516] [mi] EQ overflowing. The server is probably stuck in an infinite loop.
[    49.516] 
Backtrace:
[    49.516] 0: /usr/bin/Xorg (xorg_backtrace+0x28) [0x45dda8]
[    49.516] 1: /usr/bin/Xorg (mieqEnqueue+0x1f4) [0x457b74]
[    49.516] 2: /usr/bin/Xorg (xf86PostMotionEventM+0x97) [0x47e587]
[    49.516] 3: /usr/bin/Xorg (xf86PostMotionEventP+0x4f) [0x47e68f]
[    49.516] 4: /usr/lib64/xorg/modules/input/evdev_drv.so (0x7f0ceec7a000+0x5468) [0x7f0ceec7f468]
[    49.516] 5: /usr/bin/Xorg (0x400000+0x7cf57) [0x47cf57]
[    49.516] 6: /usr/bin/Xorg (0x400000+0x118543) [0x518543]
[    49.516] 7: /lib64/libpthread.so.0 (0x3190e00000+0xf490) [0x3190e0f490]
[    49.516] 8: /usr/lib64/xorg/modules/drivers/qxl_drv.so (0x7f0cf95d9000+0x7fdc) [0x7f0cf95e0fdc]
[    49.516] 9: /usr/lib64/xorg/modules/drivers/qxl_drv.so (0x7f0cf95d9000+0xb13b) [0x7f0cf95e413b]
[    49.516] 10: /usr/bin/Xorg (0x400000+0x14cd7b) [0x54cd7b]
[    49.516] 11: /usr/bin/Xorg (0x400000+0x14b810) [0x54b810]
[    49.516] 12: /usr/bin/Xorg (miPointerUpdateSprite+0x242) [0x45a162]
[    49.516] 13: /usr/bin/Xorg (0x400000+0x5a3e4) [0x45a3e4]
[    49.516] 14: /usr/bin/Xorg (0x400000+0xb1033) [0x4b1033]
[    49.516] 15: /usr/bin/Xorg (0x400000+0xd7c26) [0x4d7c26]
[    49.516] 16: /usr/bin/Xorg (0x400000+0x300e9) [0x4300e9]
[    49.516] 17: /usr/bin/Xorg (WindowHasNewCursor+0x37) [0x430387]
[    49.516] 18: /usr/bin/Xorg (ChangeWindowAttributes+0xc68) [0x442048]
[    49.516] 19: /usr/bin/Xorg (0x400000+0x4c934) [0x44c934]
[    49.516] 20: /usr/bin/Xorg (0x400000+0x4ef41) [0x44ef41]
[    49.516] 21: /usr/bin/Xorg (0x400000+0x21deb) [0x421deb]
[    49.517] 22: /lib64/libc.so.6 (__libc_start_main+0xfd) [0x319061ecdd]
[    49.517] 23: /usr/bin/Xorg (0x400000+0x21979) [0x421979]

My bt:
#0  qxl_ring_push (ring=0xf43230, new_elt=0x7fff1f266d00) at qxl_ring.c:73
#1  0x00007fdeb682c13b in push_cursor (qxl=<value optimized out>, 
    cursor=<value optimized out>) at qxl_cursor.c:42
#2  0x00000000004578e9 in mieqProcessInputEvents () at mieq.c:485
#3  0x000000000047d1b9 in ProcessInputEvents () at xf86Events.c:165
#4  0x000000000044eb83 in Dispatch () at dispatch.c:363
#5  0x0000000000421deb in main (argc=9, argv=<value optimized out>, 
    envp=<value optimized out>) at main.c:287

Comment 18 Søren Sandmann Pedersen 2011-09-23 11:55:30 UTC
To summarize the issue:

- Restarting the client, both spice-client and spicy fixes the hang

- From inside the QXL driver, it looks like spice-server has stopped processing cursor commands for no good reason.

Best guess at a component is spice-server, though it could conceivably be in the client code too.

Comment 19 Marc-Andre Lureau 2011-09-23 12:12:00 UTC
Søren, any comment about the upgrade of qxl?

In 20110823.1 tree: xorg-x11-drv-qxl-0.0.14-5.el6 ok
In 20110907.1 tree: xorg-x11-drv-qxl-0.0.14-6.el6 fail

Comment 20 Søren Sandmann Pedersen 2011-09-23 14:56:29 UTC
(In reply to comment #19)
> Søren, any comment about the upgrade of qxl?
> 
> In 20110823.1 tree: xorg-x11-drv-qxl-0.0.14-5.el6 ok
> In 20110907.1 tree: xorg-x11-drv-qxl-0.0.14-6.el6 fail

The bug reproduces with both those drivers.

Comment 21 Marian Krcmarik 2011-09-23 15:07:14 UTC
(In reply to comment #20)
> (In reply to comment #19)
> > Søren, any comment about the upgrade of qxl?
> > 
> > In 20110823.1 tree: xorg-x11-drv-qxl-0.0.14-5.el6 ok
> > In 20110907.1 tree: xorg-x11-drv-qxl-0.0.14-6.el6 fail
> 
> The bug reproduces with both those drivers.

Downgrade to xorg-x11-drv-qxl-0.0.14-3 helped in my case.

Comment 22 Lubos Kocman 2011-09-26 12:16:42 UTC
Reproduced on RHEL6.1 guest with xorg-x11-drv-qxl-0.0.12-9.el6.x86_64

Comment 24 Christophe Fergeau 2011-09-26 22:06:59 UTC
I managed to reproduce with spice-server 0.8.0, 0.8.1 and 0.8.2 when running some tests. I was using qemu 0.15, a RHEL6.1 guest with xorg-x11-drv-qxl-0.0.14-5.el6.

Next I'll try the same thing with xorg-x11-drv-qxl-0.0.12-9.el6.x86_64
At this point, I'd be really surprised if this bug has been present since version 0.8.0 regardless of the xorg-x11-drv-qxl version (or of some other component), I think it would have been noticed earlier if it does not depend on some other condition.

Lubos, are you following some specific steps to reproduce the bug with 0.0.12-9 ?

Comment 25 Søren Sandmann Pedersen 2011-09-27 12:03:17 UTC
Back to the qxl driver since Christophe pointed out that a patch had accidentally been dropped in -5 that would cause this issue.

That patch is back in in -9, so marking MODIFIED.

Comment 26 Søren Sandmann Pedersen 2011-09-27 12:07:47 UTC
We need acks to add this to the erratum.

Comment 29 Lubos Kocman 2011-10-06 08:17:24 UTC
Hello Soren,

I'm experiencing same problem with linux client and win7x64 guest. Screen is not being refreshed in fullscreen (sometimes I'm able to work for a while but then finally after few seconds it screen hangs). Switching from fullscreen helps.

But I'm experiencing various hangs in window mode as well (but not so often). In this case moving spice-client window helps.

I've tried to connect to the guest trough userportal and also manually and I'm experiencing the same issue.


Current setup is laptop connected to an extended display (laptop screen is disabled). So only one display is in use.

rhev-tools 3.0.22
spice-client-0.8.2-7.el6.x86_64
spice-server-0.8.2-3.el6.x86_64
vgabios-0.6b-3.6.el6.noarch
seabios-0.6.1.2-3.el6.x86_64
qemu-kvm-0.12.1.2-2.184.el6.x86_64

Should I clone this bug to rhevm product or is it a different issue?

Comment 30 Lubos Kocman 2011-10-06 11:13:29 UTC
Sorry issue described in previous post seems to be caused with xorg-x11-drv-intel. Please ignore it

Comment 31 Lubos Kocman 2011-10-12 15:06:32 UTC
It works with fixed in version but it doesn't work with xorg-x11-drv-qxl-0.0.14-10.el6 from brew was that just some kind of test?

Comment 32 Søren Sandmann Pedersen 2011-10-19 14:47:00 UTC
(In reply to comment #31)
> It works with fixed in version but it doesn't work with
> xorg-x11-drv-qxl-0.0.14-10.el6 from brew was that just some kind of test?

No, -10 is supposed to work.

Comment 33 Søren Sandmann Pedersen 2011-10-19 15:00:15 UTC
Are you sure you are seeing the same symptoms? Ie., the hang can be worked around by restarting the client.

Comment 34 Marian Krcmarik 2011-10-21 08:57:03 UTC
I and Michal Hasko retested the issue (to make sure) and we do not observe hang anymore with xorg-x11-drv-qxl-0.0.14-10.el6.

Comment 36 errata-xmlrpc 2011-12-06 15:08:44 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHEA-2011-1621.html

Comment 37 Michael S. Tsirkin 2012-06-26 13:57:32 UTC
*** Bug 741570 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.