Bug 1460595

Summary: [virtio-vga]Display 2 should be dropped when guest reboot
Product: Red Hat Enterprise Linux 7 Reporter: Guo, Zhiyi <zhguo>
Component: qemu-kvm-rhevAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED ERRATA QA Contact: Guo, Zhiyi <zhguo>
Severity: low Docs Contact:
Priority: medium    
Version: 7.4CC: chayang, fjin, jinzhao, juzhang, knoel, kraxel, michen, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.10.0-3.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-11 00:23:04 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:
Bug Depends On: 1505696    
Bug Blocks: 1473046    
Attachments:
Description Flags
Screen shot of Display 1 &2
none
Evidence video none

Description Guo, Zhiyi 2017-06-12 06:49:20 UTC
Description of problem:
Display 2 should be dropped when guest reboot

Version-Release number of selected component (if applicable):
qemu-kvm-rhev-2.9.0-9.el7.x86_64 
kernel 3.10.0-679.el7.x86_64(host & guest)

How reproducible:
100%

Steps to Reproduce:
1.Boot rhel7.4 guest with cli:
/usr/libexec/qemu-kvm -name rhel-sp4 -m 4G -machine pc,accel=kvm\
        -S \
        -cpu Skylake-Client,check,enforce \
        -smp 2 \
        -monitor stdio \
        -qmp tcp:0:4444,server,nowait \
        -device virtio-vga,max_outputs=2 \
        -serial unix:/tmp/console,server,nowait \
        -drive file=rhelsp4.qcow2,if=none,id=drive-scsi-disk0,format=qcow2,cache=none,werror=stop,rerror=stop -device virtio-scsi-pci,id=scsi0,addr=04 -device scs
i-hd,drive=drive-scsi-disk0,bus=scsi0.0,scsi-id=0,lun=0,id=scsi-disk0,bootindex=1 \
        -netdev tap,id=idinWyYp,vhost=on -device virtio-net-pci,mac=42:ce:a9:d2:4d:d7,id=idlbq7eA,netdev=idinWyYp \
        -spice port=3003,disable-ticketing,agent-mouse=on \
        -device virtio-serial-pci -chardev spicevmc,id=vdagent,debug=0,name=vdagent \
        -device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
2.Enable Display 2 from remote viewer: View -> Displays, and enable Secondary display for Display 2 from geust display settings.
3.Reboot guest

Actual results:
Display 2 won't be dropped. After guest reboot finish and login to Desktop, Display 2 show "Waiting for display 2..." and won't get guest desktop graphic automatically. Need to uncheck and check Display 2 again to make it works normally

Expected results:
Display 2 should be dropped when guest reboot. Test against qxl-vga, Display 2 will be dropped and I think it is reasonable to drop display 2 if it cannot get guest desktop graphic automatically

Additional info:

Comment 2 Guo, Zhiyi 2017-06-12 06:54:21 UTC
Created attachment 1286948 [details]
Screen shot of Display 1 &2

A screenshot show Display 2 won't get guest desktop graphic automatically after guest reboot and login to Desktop

Comment 4 Gerd Hoffmann 2017-09-26 08:04:13 UTC
upstream commit 79d16c21a565927943486b26789caa62413ff371 (will land in 2.11)

Comment 5 Gerd Hoffmann 2017-10-05 08:40:11 UTC
patch posted.

Comment 6 Miroslav Rezanina 2017-10-20 09:32:14 UTC
Fix included in qemu-kvm-rhev-2.10.0-3.el7

Comment 8 Guo, Zhiyi 2017-12-21 16:22:17 UTC
Enable 2nd display will cause qemu core dump, the core dump is tracked by Bug 1505696 - Qemu crashed when open the second display of virtio video. Will verify this bug after 1505696 fix

Comment 9 Guo, Zhiyi 2018-02-12 06:36:16 UTC
Hi Gerd,
   After testing this bug and reading the patch, I think the solution is keeping all of the Displays opened and output the guest desktop graphic to all of them after guest reboot, right? Although the expect behavior is different from my bug report, but I think this is also a good idea.

   But another thing I found during multi displays test is: When you enable the second display, disable the second display won't make it vanish. Further more, the second display will reconnect automatically with no graphic output, this is a regression caused by this fix?

BR/
Zhiyi, Guo

Comment 10 Guo, Zhiyi 2018-02-12 06:38:47 UTC
Created attachment 1394793 [details]
Evidence video

Video show this buggy behavior

Comment 11 Gerd Hoffmann 2018-02-12 16:01:00 UTC
(In reply to Guo, Zhiyi from comment #9)
> Hi Gerd,
>    After testing this bug and reading the patch, I think the solution is
> keeping all of the Displays opened and output the guest desktop graphic to
> all of them after guest reboot, right? Although the expect behavior is
> different from my bug report, but I think this is also a good idea.

Yes, the second display will stay, and during reboot will show the "waiting for display ..." message.  But given that this is only temporary (the guest gui will pick up the screen after) I think this is fine.

>    But another thing I found during multi displays test is: When you enable
> the second display, disable the second display won't make it vanish.

Hmm, yes.  It works when you reboot, then disable the second display while the grub menu is displayed.  So it seems qemu updates the window layout hints correctly, but the guest driver doesn't pick it up.  Could also be a bug on the guest side.  Need to look into this.  Can you open a new bug for this one?

> Further
> more, the second display will reconnect automatically with no graphic
> output, this is a regression caused by this fix?

Probably related to the issue above.

Comment 12 Guo, Zhiyi 2018-02-13 14:04:53 UTC
(In reply to Gerd Hoffmann from comment #11)
> (In reply to Guo, Zhiyi from comment #9)
> > Hi Gerd,
> >    After testing this bug and reading the patch, I think the solution is
> > keeping all of the Displays opened and output the guest desktop graphic to
> > all of them after guest reboot, right? Although the expect behavior is
> > different from my bug report, but I think this is also a good idea.
> 
> Yes, the second display will stay, and during reboot will show the "waiting
> for display ..." message.  But given that this is only temporary (the guest
> gui will pick up the screen after) I think this is fine.
> 
> >    But another thing I found during multi displays test is: When you enable
> > the second display, disable the second display won't make it vanish.
> 
> Hmm, yes.  It works when you reboot, then disable the second display while
> the grub menu is displayed.  So it seems qemu updates the window layout
> hints correctly, but the guest driver doesn't pick it up.  Could also be a
> bug on the guest side.  Need to look into this.  Can you open a new bug for
> this one?
> 
> > Further
> > more, the second display will reconnect automatically with no graphic
> > output, this is a regression caused by this fix?
> 
> Probably related to the issue above.

Please see Bug 1544790 - Second display will reconnect without desktop output after enable and disable second display

Now I will close this bug as verified.

Comment 13 Guo, Zhiyi 2018-02-13 14:17:57 UTC
Verified per comment 11 & 12

Comment 15 errata-xmlrpc 2018-04-11 00:23:04 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://access.redhat.com/errata/RHSA-2018:1104