Bug 1185807

Summary: cannot show login page again of KVM guest (spice+qxl) after log out from guest's desktop
Product: Red Hat Enterprise Linux 7 Reporter: zhoujunqin <juzhou>
Component: xorg-x11-drv-qxlAssignee: Marc-Andre Lureau <marcandre.lureau>
Status: CLOSED ERRATA QA Contact: SPICE QE bug list <spice-qe-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: baumanmo, dblechte, gscrivan, marcandre.lureau, mzhan, rbalakri, tjamrisk, tpelka, tzheng, vehrlich
Target Milestone: rc   
Target Release: 7.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: xorg-x11-drv-qxl-0.1.1-16.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 04:24:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Screenshot-1 get from virt-manager
none
Screenshot-2 get from virt-viewer
none
spice+qxl system log
none
spice+cirrus system log none

Description zhoujunqin 2015-01-26 10:44:24 UTC
Description of problem:
cannot show login page again of KVM guest (spice+qxl) after log out from guest's desktop 

Version-Release number of selected component (if applicable):
xorg-x11-drv-qxl-0.1.1-12.el7.x86_64
virt-manager-1.1.0-12.el7.noarch
virt-viewer-0.6.0-12.el7.x86_64
libvirt-1.2.8-15.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Install a rhel7 guest with spice graphics and qxl video device:

HOST: update to tree:http://download.englab.nay.redhat.com/pub/rhel/rel-eng/RHEL-7.1-20150122.0/compose/Server/x86_64/os/

Guest installed with new tree:http://download.englab.nay.redhat.com/pub/rhel/rel-eng/RHEL-7.1-20150122.0/compose/Server/x86_64/os/

2. Start the virt-manager.
# virt-manager

3. double click guest, then click "View -> Scale Display -> Auto resize VM with window", start guest and open the console, configure the resolution same as host (1280*1024)

4. log out the guest and login again.

Actual results:
After step5, log out the guest but guest cannot show login display again, see Screenshot-1.

Expected results:
Can logout and login again successfully.

Additional info:
I can also reproduce this issue with virt-viewer:
1. Prepare a such guest,called kvm-rhel7.1-0122:
2. Start guest and use virt-viewer to connect in full screen:

# virsh list 
 Id    Name                           State
----------------------------------------------------
 20    kvm-rhel7.1-0122               running

# virt-viewer kvm-rhel7.1-0122 -f

3. Login guest(service spice-vdagentd is running) and then logout.

Result: See Screenshot-2.

Comment 1 zhoujunqin 2015-01-26 10:46:03 UTC
Created attachment 984153 [details]
Screenshot-1 get from virt-manager

Comment 2 zhoujunqin 2015-01-26 10:46:46 UTC
Created attachment 984154 [details]
Screenshot-2 get from virt-viewer

Comment 3 Marc-Andre Lureau 2015-01-26 11:18:48 UTC
What happens if you use cirrus video device ?

Can you provides the system logs? (jounalctl --boot should be good enough)

Comment 4 zhoujunqin 2015-01-27 03:08:37 UTC
(In reply to Marc-Andre Lureau from comment #3)
> What happens if you use cirrus video device ?
I tried guest with spice graphics and cirrus video:

1. Start the virt-manager.
# virt-manager

2. double click guest, then click "View -> Scale Display -> Auto resize VM with window", start guest and open the console, configure the resolution same as host (1280*1024)

3. log out the guest and login again.

4. Repeat step3 for several times.

Result: After step3, logout guest successfully and can login again.

5. Always works with #virt-viewer $guest -f

> 
> Can you provides the system logs? (jounalctl --boot should be good enough)

I will attach system logs called:
spice+qxl: video_qxl_boot.log
scice+cirrus: video-vnc.log

Comment 5 zhoujunqin 2015-01-27 03:09:52 UTC
Created attachment 984474 [details]
spice+qxl system  log

Comment 6 zhoujunqin 2015-01-27 03:10:36 UTC
Created attachment 984475 [details]
spice+cirrus system log

Comment 7 Marc-Andre Lureau 2015-01-27 10:30:33 UTC
It is the common memory allocation issue:

Jan 27 10:54:17 localhost.localdomain kernel: ------------[ cut here ]------------
Jan 27 10:54:17 localhost.localdomain kernel: WARNING: at drivers/gpu/drm/qxl/qxl_ttm.c:414 qxl_sync_obj_wait+0x182/0x220 [qxl]()
Jan 27 10:54:17 localhost.localdomain kernel: sync obj 301 still has outstanding releases 0 0 0 262144 1
Jan 27 10:54:17 localhost.localdomain kernel: Modules linked in: btrfs zlib_deflate raid6_pq xor vfat msdos fat ext4 mbcache jbd2 binfmt_misc bnep bluetooth rfkill fuse ip6t_rpfilter ip6t_REJECT ipt_REJECT xt_conntrack ebtable_nat ebtable_broute bridge stp llc ebtable_filter ebtables ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw ip6table_filter ip6_tables iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw iptable_filter ip_tables snd_hda_codec_generic snd_hda_intel ppdev snd_hda_controller snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm crc32c_intel snd_timer virtio_balloon virtio_console pcspkr serio_raw snd soundcore i2c_piix4 parport_pc parport uinput xfs libcrc32c ata_generic pata_acpi virtio_net
Jan 27 10:54:17 localhost.localdomain kernel:  virtio_blk qxl drm_kms_helper ttm drm i2c_core ata_piix virtio_pci virtio_ring virtio libata floppy dm_mirror dm_region_hash dm_log dm_mod
Jan 27 10:54:17 localhost.localdomain kernel: CPU: 0 PID: 4512 Comm: Xorg Tainted: G        W   --------------   3.10.0-224.el7.x86_64 #1
Jan 27 10:54:17 localhost.localdomain kernel: Hardware name: Red Hat KVM, BIOS seabios-1.7.5-8.el7 04/01/2014
Jan 27 10:54:17 localhost.localdomain kernel:  ffff88003baaf8d0 00000000201969b0 ffff88003baaf888 ffffffff81603f46
Jan 27 10:54:17 localhost.localdomain kernel:  ffff88003baaf8c0 ffffffff8106e28b 0000000000000001 ffff88000d1cdf40
Jan 27 10:54:17 localhost.localdomain kernel:  0000000000000001 ffff88000d1cdf58 0000000000000000 ffff88003baaf928
Jan 27 10:54:17 localhost.localdomain kernel: Call Trace:
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff81603f46>] dump_stack+0x19/0x1b
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff8106e28b>] warn_slowpath_common+0x6b/0xb0
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff8106e32c>] warn_slowpath_fmt+0x5c/0x80
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff816085d3>] ? schedule_hrtimeout_range+0x13/0x20
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa0170122>] qxl_sync_obj_wait+0x182/0x220 [qxl]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa0128841>] ttm_bo_wait+0xb1/0x1b0 [ttm]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa012a183>] ttm_bo_evict+0x63/0x360 [ttm]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa012a5ba>] ttm_mem_evict_first+0x13a/0x1b0 [ttm]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa012a898>] ttm_bo_mem_space+0x268/0x310 [ttm]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa012ada2>] ttm_bo_validate+0x1e2/0x260 [ttm]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa012b08b>] ttm_bo_init+0x26b/0x420 [ttm]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa01721df>] qxl_bo_create+0x13f/0x1a0 [qxl]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa0171f60>] ? qxl_fbdev_qobj_is_fb+0x30/0x30 [qxl]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa0172959>] qxl_gem_object_create+0x69/0x110 [qxl]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa0172a5c>] qxl_gem_object_create_with_handle+0x5c/0x120 [qxl]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa0175d66>] qxl_alloc_ioctl+0x46/0xc0 [qxl]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffffa00dcb6c>] drm_ioctl+0x1ec/0x660 [drm]
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff8109ac55>] ? enqueue_hrtimer+0x25/0x80
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff8109b5aa>] ? __hrtimer_start_range_ns+0x1ca/0x410
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff811d9b75>] do_vfs_ioctl+0x2e5/0x4c0
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff8126efae>] ? file_has_perm+0xae/0xc0
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff811d9df1>] SyS_ioctl+0xa1/0xc0
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff8160ecd9>] ? do_async_page_fault+0x29/0xe0
Jan 27 10:54:17 localhost.localdomain kernel:  [<ffffffff81613de9>] system_call_fastpath+0x16/0x1b
Jan 27 10:54:17 localhost.localdomain kernel: ---[ end trace 1eeba03718d54188 ]---
Jan 27 10:54:17 localhost.localdomain kernel: [TTM] Failed to expire sync object before buffer eviction
Jan 27 10:54:17 localhost.localdomain kernel: qxl 0000:00:02.0: object_init failed for (262144, 0x00000001)
Jan 27 10:54:17 localhost.localdomain kernel: [drm:qxl_gem_object_create] *ERROR* Failed to allocate GEM object (261140, 1, 4096, -12)
Jan 27 10:54:17 localhost.localdomain kernel: [drm:qxl_alloc_ioctl] *ERROR* qxl_alloc_ioctl: failed to create gem ret=-12

Comment 9 Marc-Andre Lureau 2015-05-15 13:51:04 UTC
I can't reproduce anymore with the fix from bug 1102175. moving to POST

Comment 10 Marc-Andre Lureau 2015-05-15 13:51:38 UTC
(note I couldn't reproduce this bug with f21 as host either,..)

Comment 14 errata-xmlrpc 2015-11-19 04:24:32 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.

https://rhn.redhat.com/errata/RHEA-2015-2198.html