Bug 1296878

Summary: virt-viewer console will restore a larger window when use mouse to drag the window to minimum
Product: Red Hat Enterprise Linux 6 Reporter: mxie <mxie>
Component: virt-viewerAssignee: Virt Viewer Maint <virt-viewer-maint>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.8CC: cfergeau, dblechte, fidencio, fziglio, juzhou, mxie, mzhan, rbalakri, tzheng, xiaodwan
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-viewer-2.0-13.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1297260 (view as bug list) Environment:
Last Closed: 2016-05-10 21:22:03 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:    
Bug Blocks: 1297260    
Attachments:
Description Flags
screenshot1
none
rhel7 guest log
none
rhel6 guest log none

Description mxie@redhat.com 2016-01-08 10:33:32 UTC
Created attachment 1112844 [details]
screenshot1

Description of problem:
virt-viewer console will restore a larger window when use mouse to drag the window to minimum

Version-Release number of selected component (if applicable):
virt-viewer-2.0-12.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Prepare a rhel7 guest and use virt-viewer connect to the guest
# virt-viewer rhel7.2-1030 --debug --spice-debug

2.Use mouse to drag the window to minimum, then the virt-viewer console will restore a larger window( pls refer to screenshot1) and the debug info prompt like below(details  please refer to attachment log" rhel7 guest log"):

# virt-viewer rhel7.2-1030 --debug --spice-debug
(virt-viewer:9494): virt-viewer-DEBUG: Allocated 203x50
(virt-viewer:9494): virt-viewer-DEBUG: Child allocate 19x50
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:1049 recalc geom monitor: 0:0, guest +0+0:200x50, window 19x50, zoom 1
(virt-viewer:9494): GSpice-DEBUG: channel-display.c:1712 display-2:0: monitors config: n: 1/4
(virt-viewer:9494): GSpice-DEBUG: channel-display.c:1732 display-2:0: monitor id: 0, surface id: 0, +0+0-200x50
(virt-viewer:9494): virt-viewer-DEBUG: Allocated 203x537
(virt-viewer:9494): virt-viewer-DEBUG: Child allocate 200x537
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:1049 recalc geom monitor: 0:0, guest +0+0:200x50, window 200x537, zoom 1
(virt-viewer:9494): GSpice-DEBUG: channel-cursor.c:309 cursor-4:0: set_cursor: flags 0, size 16384
(virt-viewer:9494): GSpice-DEBUG: channel-cursor.c:316 cursor-4:0: set_cursor: type alpha(0), 0, 64x64

(virt-viewer:9494): GLib-GObject-WARNING **: value "50" of type `gint' is invalid or out of range for property `desktop-height' of type `gint'
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:0
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:2083 update area, primary: 1064x537, area: +0+0 200x50
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:1049 recalc geom monitor: 0:0, guest +0+0:200x50, window 200x537, zoom 1
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:1
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:280 update monitor: no monitor 1
(virt-viewer:9494): GSpice-DEBUG: spice-channel.c:2702 test cap 1 in 0x12: yes
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:283 waiting until MonitorsConfig is received
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:2
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:280 update monitor: no monitor 2
(virt-viewer:9494): GSpice-DEBUG: spice-channel.c:2702 test cap 1 in 0x12: yes
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:283 waiting until MonitorsConfig is received
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:3
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:280 update monitor: no monitor 3
(virt-viewer:9494): GSpice-DEBUG: spice-channel.c:2702 test cap 1 in 0x12: yes
(virt-viewer:9494): GSpice-DEBUG: spice-widget.c:283 waiting until MonitorsConfig is received
(virt-viewer:9494): GSpice-DEBUG: channel-display.c:1712 display-2:0: monitors config: n: 1/4
(virt-viewer:9494): GSpice-DEBUG: channel-display.c:1732 display-2:0: monitor id: 0, surface id: 0, +0+0-200x50
(virt-viewer:9494): virt-viewer-DEBUG: Display size request 200x537 (desktop 200x537)
(virt-viewer:9494): virt-viewer-DEBUG: Allocated 203x537
(virt-viewer:9494): virt-viewer-DEBUG: Child allocate 200x537


Actual results:
As above description

Expected results:
virt-viewer console should keep the window size when use mouse to drag the window to minimum


Addtional info:
When use virt-viewer to connect a RHEL6 guest and use mouse to drag the window to minimum, it could reproduce the problem sometimes, details please refer to attachment log "rhel6 guest log"

Comment 1 mxie@redhat.com 2016-01-08 10:34:27 UTC
Created attachment 1112846 [details]
rhel7 guest log

Comment 2 mxie@redhat.com 2016-01-08 10:35:19 UTC
Created attachment 1112847 [details]
rhel6 guest log

Comment 9 Frediano Ziglio 2016-01-12 14:46:37 UTC
I did some tests. Looks like on former rhel-7 this limitation used to work.
I updated the system and get same issue. Even using old kernel (and all other system updated) I get same issue so it's something in the system that changed.

Comment 10 Frediano Ziglio 2016-01-12 15:00:44 UTC
Forget... I don't know why kernel does not enforce these limits and why the new tools can possibly force a smaller resolution.

Comment 11 Frediano Ziglio 2016-01-13 11:47:38 UTC
Yesterday I did some investigation on the Kernel side.
Turn out that the encoded limitation (320x200) apply to the frame buffer but not to the crt. This appears quite weird but looks like that DRM allows to have a bigger frame buffer. For the old guys (like me) this will remember the panning feature of the (x)VGA where you can set the frame buffer to a big area of memory but display only a limited part. This allows to show a small area just changing a registry in the card, for instance to implement double/triple buffering.
Now I need to find a way to tell kernel the limits for crt.

Comment 12 Fabiano FidĂȘncio 2016-01-22 17:44:49 UTC
The 2 patches that solve this issue are:
907f8c5d3347eef95ecb6eccc7c5752093c7f5cf
c2046a2992b04fde2286c6feffdd7f4410087583

Comment 14 mxie@redhat.com 2016-01-25 07:16:13 UTC
Try to verify the bug with build:
virt-viewer-2.0-13.el6.x86_64

Steps:
1.Prepare a rhel6 guest or a rhel7 guest and use virt-viewer connect to the guest

2.Use mouse to drag the window to minimum, then virt-viewer window size will keep at 320x200 even if using mouse to drag the window to small size, debug info as below:

# virt-viewer rhel6released --debug --spice-debug
(virt-viewer:13576): virt-viewer-DEBUG: Allocated 320x200
(virt-viewer:13576): virt-viewer-DEBUG: Child allocate 320x200
(virt-viewer:13576): GSpice-DEBUG: spice-widget.c:1049 recalc geom monitor: 0:0, guest +0+0:320x200, window 320x200, zoom 1
 drag the window

3.Check the resolution of guest, the resolution is also 320x200 
#xrandr
Screen 0: minimum 320 x 200, current 320 x 200, maximum 8192 x 8192
qxl-0 connected 320x200+0+0 0mm x 0mm
   1024x768       60.0 +
   2048x2048      60.0  
   2560x1600      60.0  
   2000x2000      60.0  
   2560x1440      60.0  
   2048x1536      60.0  
   1920x1440      60.0  
   1920x1200      60.0  
   1920x1080      60.0  
   1600x1200      60.0  
   1680x1050      60.0  
   1400x1050      60.0  
   1600x900       60.0  
   1280x1024      60.0  
   1440x900       60.0  
   1280x960       60.0  
   1366x768       60.0  
   1360x768       60.0  
   1280x800       60.0  
   1152x870       60.0  
   1152x864       60.0  
   1280x768       60.0  
   1280x760       60.0  
   1280x720       60.0  
   1024x600       60.0  
   960x640        60.0  
   832x624        60.0  
   800x600        60.0  
   800x480        60.0  
   640x480        60.0  
   320x200-0       0.1* 
qxl-1 disconnected
qxl-2 disconnected
qxl-3 disconnected

Result now:
virt-viewer console keep the window size at 320x200 when use mouse to drag the window to minimum

So move the bug from ON_QA to VERIFIED

Comment 16 errata-xmlrpc 2016-05-10 21:22:03 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/RHBA-2016-0832.html