Back to bug 1032939
| Who | When | What | Removed | Added |
|---|---|---|---|---|
| Daniel Berrangé | 2013-12-12 10:58:33 UTC | Assignee | berrange | virt-viewer-maint |
| Jonathon Jongsma | 2013-12-17 15:11:16 UTC | Blocks | 1009648 | |
| John Skeoch | 2014-03-17 01:46:04 UTC | CC | hyao | |
| David Blechter | 2014-06-16 12:07:01 UTC | Assignee | virt-viewer-maint | rh-spice-bugs |
| Jonathon Jongsma | 2014-08-19 15:28:03 UTC | Status | NEW | ASSIGNED |
| CC | jjongsma | |||
| Assignee | rh-spice-bugs | jjongsma | ||
| John Skeoch | 2014-09-07 23:15:00 UTC | CC | acathrow | rbalakri |
| Jonathon Jongsma | 2014-09-26 13:53:57 UTC | Status | ASSIGNED | POST |
| Fabiano Fidêncio | 2014-10-10 12:31:21 UTC | CC | fidencio | |
| Fabiano Fidêncio | 2014-10-13 21:50:43 UTC | Status | POST | MODIFIED |
| Doc Text | Cause: The current design of virt-viewer is that we have a VirtViewerWindow object (the "main window") that is shown at startup in order to communicate session-level connection status to the user. This window is stored in a hash table with a key being the ID of the display (#0, the first display). When we receive a new spice message indicating the maximum number of monitors available (e.g. 4 in the case of a linux guest with QXL), we create display objects for each of these remote displays, and signal that a new display was added. In response to this signal, we look up the window associated with this display's ID. If the window exists (as it does with display #0), we associate the display with that window. Otherwise, we create a new window, and insert it into the hash table with the display's ID. Consequence: In cases where the first display is disabled on the guest, we end up with a "main window" that is blank and simply displays the message "Waiting for display 1...". Fix: Remove the explicit association of an ID with a particular VirtViewerWindow. In other words, we no longer maintain a hash table of windows that associate a fixed id with the window object. Instead, we have a simple list of windows, and the ID of that window is determined by the ID of the VirtViewerDisplay object that it contains. In addition, we only create a VirtViewerWindow object for the display when the remote display becomes ready. Disabled remote displays do not have an associated VirtViewerWindow object until they become enabled. This means that the initial window (the "main window") can become any ID: it gets its ID from the first display that becomes enabled. Result: Virt-viewer no longer pops out invalid Display 1 when relaunching guest |
|||
| Fabiano Fidêncio | 2014-10-13 21:51:21 UTC | Fixed In Version | virt-viewer-0.6.0-8.el7 | |
| errata-xmlrpc | 2014-10-13 22:28:39 UTC | Status | MODIFIED | ON_QA |
| CongDong | 2014-10-14 07:09:15 UTC | Status | ON_QA | VERIFIED |
| John Skeoch | 2014-10-19 23:07:31 UTC | CC | zsong | |
| John Skeoch | 2014-11-09 22:26:03 UTC | CC | lcui | |
| errata-xmlrpc | 2015-03-04 18:22:07 UTC | Status | VERIFIED | RELEASE_PENDING |
| errata-xmlrpc | 2015-03-05 13:38:38 UTC | Status | RELEASE_PENDING | CLOSED |
| Resolution | --- | ERRATA | ||
| Last Closed | 2015-03-05 08:38:38 UTC | |||
| Jiri Herrmann | 2015-07-16 15:06:46 UTC | CC | jherrman | |
| Doc Text | Cause: The current design of virt-viewer is that we have a VirtViewerWindow object (the "main window") that is shown at startup in order to communicate session-level connection status to the user. This window is stored in a hash table with a key being the ID of the display (#0, the first display). When we receive a new spice message indicating the maximum number of monitors available (e.g. 4 in the case of a linux guest with QXL), we create display objects for each of these remote displays, and signal that a new display was added. In response to this signal, we look up the window associated with this display's ID. If the window exists (as it does with display #0), we associate the display with that window. Otherwise, we create a new window, and insert it into the hash table with the display's ID. Consequence: In cases where the first display is disabled on the guest, we end up with a "main window" that is blank and simply displays the message "Waiting for display 1...". Fix: Remove the explicit association of an ID with a particular VirtViewerWindow. In other words, we no longer maintain a hash table of windows that associate a fixed id with the window object. Instead, we have a simple list of windows, and the ID of that window is determined by the ID of the VirtViewerDisplay object that it contains. In addition, we only create a VirtViewerWindow object for the display when the remote display becomes ready. Disabled remote displays do not have an associated VirtViewerWindow object until they become enabled. This means that the initial window (the "main window") can become any ID: it gets its ID from the first display that becomes enabled. Result: Virt-viewer no longer pops out invalid Display 1 when relaunching guest | The first guest display was re-enabled after a guest reboot even when it was previously disabled on the guest. This update removes the fixed association between the the main guest window and a specific guest display number, which prevents the problem from occurring. |
Back to bug 1032939