Bug 973660

Summary: Killing first virt-viewer display (Main display in Windows) of 4 will result in no functionality of remaining 3 virt-viewer windows.
Product: Red Hat Enterprise Virtualization Manager Reporter: Idith Tal-Kohen <italkohe>
Component: mingw-virt-viewerAssignee: Marc-Andre Lureau <marcandre.lureau>
Status: CLOSED ERRATA QA Contact: Desktop QE <desktop-qa-list>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.2.0CC: acathrow, bsanford, cfergeau, cpelland, dblechte, iheim, jbiddle, marcandre.lureau, mkrcmari, pvine, vipatel
Target Milestone: ---Keywords: ZStream
Target Release: 3.2.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: spice
Fixed In Version: mingw-virt-viewer-0.5.3-28.el6ev Doc Type: Bug Fix
Doc Text:
Previously, killing the first virt-viewer display when using multiple monitors on Windows guests would result in the other monitors losing functionality, due to the loss of the Windows task bar from the first display. Now, virt-viewer also disables the first monitor, so the guest can place the taskbar on the remaining monitors.
Story Points: ---
Clone Of: 958550 Environment:
Last Closed: 2013-07-16 13:31:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Spice RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 953973, 958550, 961297, 973726    
Bug Blocks:    

Description Idith Tal-Kohen 2013-06-12 12:59:23 UTC
+++ This bug was initially created as a clone of Bug #958550 +++

Description of problem:
In virt-viewer, View -> Displays -> deselect the first display (Main display in Windows) of 4 displays and I have no usable functionality of the remaining 3 windows. I then select the Display 1 to return and it returns to a black screen. The ONLY way I was able to fix this, is if I resized Display 1 to anything different than it's original position.

Version-Release number of selected component (if applicable):
RHEV-M 3.2 (si14) and W2K8R2 client.
spice-client-msi-3.2-10 (mingw-virt-viewer 0.5.3-25)
vdagent-win-0.1-17 to Win7 guest

How reproducible:
100%

Steps to Reproduce:
1. See Above
2.
3.
  
Actual results:
The main window (Windows config) remains on the display that is closed. You need to select the display to come back to have any functionality.

Expected results:
The main window (Windows config) should be switched over to the next usable screen. If it the only screen remaining, it should act like a File -> Exit.

Additional info:

--- Additional comment from Marc-Andre Lureau on 2013-05-02 09:07:27 EDT ---

First, what is it that you call "no functionality"? The fact that the windows start menu and taskbar isn't visible? Or input is disabled? or display is frozen or black?

When I disable the first display, the other displays are still functionnal.

But there are 2 issues:

1) for legacy reasons, virt-viewer doesn't disable the monitor #0 (so the "main" guest display isn't updated to a visible/enabled one), this can trivially be changed in virt-viewer by removing the if (nth != 0) condition

2) agents don't support disabling first monitors very well.
 - Windows agent doesn't support sparse monitors: bug 953973
 - Linux agent raises X error when disabling & enabling first monitor

--- Additional comment from Marc-Andre Lureau on 2013-05-02 09:10:02 EDT ---

Since there is a workaround and this is not a main feature, and also because the extra display are still usable, I suggest the severity be lowered and the bug moved to 3.3

--- Additional comment from Marian Krcmarik on 2013-05-02 09:38:39 EDT ---

(In reply to comment #1)
> First, what is it that you call "no functionality"? The fact that the
> windows start menu and taskbar isn't visible? Or input is disabled? or
> display is frozen or black?
In my case, simply I lose primary monitor so I cannot see taskbar and the start menu indeed, as well as The primary monitor is not disabled so I lose all the windows placed on the monitor or anything which opens on primary monitor.
> 
> When I disable the first display, the other displays are still functionnal.
> 
> But there are 2 issues:
> 
> 1) for legacy reasons, virt-viewer doesn't disable the monitor #0 (so the
> "main" guest display isn't updated to a visible/enabled one), this can
> trivially be changed in virt-viewer by removing the if (nth != 0) condition
> 
> 2) agents don't support disabling first monitors very well.
>  - Windows agent doesn't support sparse monitors: bug 953973
>  - Linux agent raises X error when disabling & enabling first monitor

--- Additional comment from Bill Sanford on 2013-05-02 10:16:29 EDT ---

I get the same as Marian. That is why I said in expected behavior: "The main window (Windows config) should be switched over to the next usable screen. If it the only screen remaining, it should act like a File -> Exit."

--- Additional comment from Bill Sanford on 2013-05-02 10:38:25 EDT ---

With Windows, you cannot "Disconnect this display" (The Main display) unless you make another display the main display. The fact that virt-viewer closes the first display without making another active display the "Main" display, is the issue here.

--- Additional comment from Marc-Andre Lureau on 2013-05-02 11:34:20 EDT ---

(In reply to comment #5)
> With Windows, you cannot "Disconnect this display" (The Main display) unless
> you make another display the main display. The fact that virt-viewer closes
> the first display without making another active display the "Main" display,
> is the issue here.

it's not the role of virt-viewer or spice to make a display "main", the agent/OS already guarantees that.

--- Additional comment from Bill Sanford on 2013-05-02 12:15:37 EDT ---

You're right. However, it is virt-viewer's role to keep multi-display functional. Before you deselect the display (That is the main display in the OS), maybe v-v can check and error if you are trying to close the "Main display" of the OS?

--- Additional comment from Marc-Andre Lureau on 2013-05-02 12:30:07 EDT ---

(In reply to comment #7)
> You're right. However, it is virt-viewer's role to keep multi-display
> functional. Before you deselect the display (That is the main display in the
> OS), maybe v-v can check and error if you are trying to close the "Main
> display" of the OS?

It doesn't have this knowledge, not do I think it should have.

This bug is all about the display 0 not being disabled by virt-viewer, imho. The fact that the display is main or not is irrelevant here, as it is more a guest concept than a hw config one.

--- Additional comment from Bill Sanford on 2013-05-02 13:01:23 EDT ---

At the minimum, we need to get this to the Doc folks. I have set the flag for release note.

--- Additional comment from Marc-Andre Lureau on 2013-05-09 07:05:02 EDT ---

patch sent to ML for case 1.
https://www.redhat.com/archives/virt-tools-list/2013-May/msg00017.html

Adding sparse monitor support bug dependency

--- Additional comment from Marc-Andre Lureau on 2013-05-09 07:24:41 EDT ---

Adding 1st monitor crash linux vdagent bug dependency

Comment 2 Marc-Andre Lureau 2013-06-21 11:48:09 UTC
the mingw-virt-viewer-0.5.3-26 build is missing spice-gtk sparse monitor support for this to work. reopening

Comment 7 errata-xmlrpc 2013-07-16 13:31:28 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/RHBA-2013-1071.html