Bug 1274447
| Summary: | Remote viewer only presents 1 display after reboot of 2 displays. | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Bill Sanford <bsanford> | ||||||
| Component: | spice | Assignee: | Jonathon Jongsma <jjongsma> | ||||||
| Status: | CLOSED ERRATA | QA Contact: | SPICE QE bug list <spice-qe-bugs> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | 7.2 | CC: | areis, astepano, bsanford, cfergeau, chayang, dblechte, fidencio, jjongsma, juzhang, knoel, kraxel, lsurette, mkenneth, rbalakri, rduda, srevivo, ssheribe, tpelka, uril, victortoso, virt-maint, zhguo | ||||||
| Target Milestone: | rc | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | spice-0.13.90-1.el7 | Doc Type: | If docs needed, set a value | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2018-04-10 13:52:38 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
Bill Sanford
2015-10-22 18:10:36 UTC
I am a bit confused here.
I have a bug reported, originally, against rhevm-3.6 and then moved to rhel-6.
So, what's the version of the client being used? Can we have --debug --spice-debug when running {remote,viewer}-viewer? Can we know which guest has been used for this? Does it happen with rhel-6/rhel-7/windows guests?
In the end I have a "Please resolve ASAP" comment, that doesn't make sense as RHEL-6.8 is still on planing phase.
Also, considering it happens on rhel-6 client, does it happen also on rhel-7 client? and about rhevm-3.6 client? did it happen on rhel-6.6 client or rhel-7.2 or rhevm-3.5 client? Is it a regression or just a new bug?
Please, provide all the needed info.
Seems the client doesn't matter. I am not able to see this behavior when connecting to Windows 7 guests, but I do can reproduce it when connecting to Linux guests (both rhel-6 and rhel-7). IMHO it can be agent or driver bug. I don't think it's a regression but I am still waiting for info from Bill Sandford. Created attachment 1085854 [details]
--debug --spice-debug for RHEL-7.2 guest
Created attachment 1085855 [details]
--debug --spice-debug for Windows 7 guest
acking for 6.8, need investigation to find right component(s) to solve the issue Fidencio, I am using: spice-xpi-2.7-27.el6.x86_64 virt-viewer-2.0-7.el6.x86_64 so, From my initial investigation, this bug appears to be in qemu. I tried running a rhel7 guest on a rhel6 host and it behaves just fine. When running the same guest on a rhel7 host, it misbehaves as described above. In order to determine whether the bug was in qemu or spice-server, I rebuilt the rhel6 qemu package (qemu-kvm-0.12.1.2-2.479.el6_7.2) and the rhel7.0 qemu package (qemu-kvm-1.5.3-60.el7_0.12) on my fedora 22 laptop. I built both of these against the system-installed version of spice-server (0.12.6-1.fc22). The rhel6 qemu still behaved correctly, whereas the rhel7 version did not. That suggests that the bug is in qemu rather than spice-server. Re-assigning to qemu for further investigation. (Following comment #9 [also mentioned in comment #0]) Moving to RHEL-7 What happens when running RHEL-7 qemu-kvm with "-M rhel6.6.0" ? Bill, could you test Gerd's question in comment 12? Jonathon and Gerd, I am running RHEV-M 3.6 with hosts, guest and clients and not using the qemu-kvm command from the command line on a single machine. I did git bisect to qemu upstream git repo.
The commit found is 0a2b5e3a7899b40d05d7c6c1c41eb4e64dd2ed4b
After removing this line in git master the second monitor survives reboot.
line 1099@ /hw/display/qxl.c
#if SPICE_SERVER_VERSION >= 0x000c03 /* release 0.12.3 */
// spice_qxl_driver_unload(&d->ssd.qxl);
#endif
commit 0a2b5e3a7899b40d05d7c6c1c41eb4e64dd2ed4b
Author: Hans de Goede <hdegoede>
Date: Tue Apr 23 10:18:16 2013 +0200
qxl: Call spice_qxl_driver_unload from qxl_enter_vga_mode
With a SPICE_DISPLAY_CAP_MONITORS_CONFIG capable client, the client needs to
know what part of the primary to use for each monitor. If the guest driver
does not support this, the server sends messages to the client for a
single monitor spanning the entire primary.
As soon as the guest calls spice_qxl_monitors_config_async once, the server
sets the red_worker driver_has_monitors_config flag and stops doing this.
This is a problem when the driver gets unloaded, for example after a reboot
or when switching to a text vc with usermode mode-setting under Linux.
To reproduce this start a multi-mon capable Linux guest which uses
usermode mode-setting and then once X has started switch to a text vc. Note
how the client window does not only not resize, if you try to resize it
manually you always keep blackborders since the aspect is wrong.
This patch calls a new spice-server method called spice_qxl_driver_unload
which clears the driver_has_monitors_config flag inside the server, thereby
fixing this.
Signed-off-by: Hans de Goede <hdegoede>
Signed-off-by: Gerd Hoffmann <kraxel>
Notifying spice-server about guest driver not being active any more looks like the correct thing to me, because several spice features simply stop working then. Just notice how spice client does *not* resize the window any more for vga text mode (i.e. seabios, boot loader and early kernel boot) when you comment out the spice_qxl_driver_unload call. So a simple revert is out, and I can't see how else qemu could fix this.
Probably either spice-server or spice-client needs to be improved to remember display state when the monitors_config flag is disabled so it can restore the old state when monitors_config is enabled again.
Assigning to spice-server for investigation.
*** Bug 1323995 has been marked as a duplicate of this bug. *** Is it really a bug?
I found in QE TCMS a test case of this issue with
Expected Results:
On Linux guest:
Only one SPICE VM display stays open after reboot. The other displays should close.
On Windows guest:
All displays should stay open after reboot.
I found out that the problem might be during logging in on GDM login screen. GDM login screen is always displayed only on one monitor for rhel 7.3, so only one guest display is preserved. In the case of rhel 6.8 two guest displays are on the client monitors while logging in. Wouldn't be possible to spread login screen to the second monitor in rhel 7.3? moving to 7.4. It behaves differently on rhel 6.x and rhel 7.x hosts ( does not justify the "regression" keyword), and will be investigated during the rhel 7.4 devel phase. Really minor issue. Possible fix posted here: https://lists.freedesktop.org/archives/spice-devel/2017-January/035382.html removing blocker, corner case and minor, patches were submitted upstream, pending acks. I Moving to 7.5. Patch is upstream and should be included in spice rebase Bug 1472948 Shortlog: Don't close all but one display during reboot. Commit : eb3d2bfcfd6fe2495202f489f38b0d3718816dab Jonathon Jongsma on Thu, 25 May 2017 11:56:21 -0500 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/RHBA-2018:0802 |