Bug 1242509

Summary: After resizing virt-viewer window bigger than screen size, window gets resized back to screen size, and content scaled down
Product: Red Hat Enterprise Linux 7 Reporter: Pavel Grunt <pgrunt>
Component: virt-viewerAssignee: Virt Viewer Maint <virt-viewer-maint>
Status: CLOSED ERRATA QA Contact: SPICE QE bug list <spice-qe-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.2CC: cfergeau, dblechte, djasa, ecohen, fidencio, gklein, jherrman, juzhou, lsurette, mzhan, pgrunt, rbalakri, spice-qe-bugs, tpelka, tspeetje, tzheng, xiaodwan, yeylon
Target Milestone: rc   
Target Release: 7.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-viewer-2.0-5.el7 Doc Type: Bug Fix
Doc Text:
When viewing a remote SPICE session in windowed mode and resizing the viewer window be wider than the virtual screen, the viewer window was automatically resized to fit the screen width, and the resolution of the remote screen was scaled down. This unintentional behavior has been corrected, and in the described scenario, the both the viewer window and the resolution of its contents stay unchanged
Story Points: ---
Clone Of: 1205804
: 1289972 (view as bug list) Environment:
Last Closed: 2015-11-19 07:37:44 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: 1205804    
Bug Blocks: 1289972    
Attachments:
Description Flags
screenshot-1
none
screenshot-2
none
screenshot-3
none
rhel7.2 guest screenshot when resolution is 1920*1080 none

Comment 3 zhoujunqin 2015-07-24 09:10:58 UTC
Try to reproduce this issue with old build:
virt-viewer-0.6.0-12.el7.x86_64

steps to reproduce this issue:

1. Prepare a spice guest:
# virsh dumpxml l-vm1

    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0' state='connected'/>
      <alias name='channel1'/>
      <address type='virtio-serial' controller='0' bus='0' port='2'/>
    </channel>
...
    <graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>
...
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>

2. Use remote-viewer connect to guest in windowed mode:

# remote-viewer spice://$ip:5900

3. Resize the window to a size bigger than the screen width

My question is: 
Q1: "window" here means virt-viewer display window ?
Q2: How about "screen width" here means here, screen in VM or in host, i think is in VM, but i'm not sure.

So pgrunt, please help give some advices, thanks.

In screentshot-1, then i use mouse to drag virt-viewer window to right side, then i can see virt-viewer window is set back to the guest screen width, and Contents (ie the Date showing) is scaled down to fit into the window, detail please see Screentshot-2.

Then try to verify with new build:
virt-viewer-2.0-5.el7.x86_64

Steps same with above.

Result: After step3,  virt-viewer window can keep where you dragged, and 
Contents are at scale 100%, in Screentshot-3.

Please help me check whether my steps and result are enough to verify this bug, thanks.

Comment 4 zhoujunqin 2015-07-24 09:11:48 UTC
Created attachment 1055662 [details]
screenshot-1

Comment 5 zhoujunqin 2015-07-24 09:12:45 UTC
Created attachment 1055663 [details]
screenshot-2

Comment 6 zhoujunqin 2015-07-24 09:13:48 UTC
Created attachment 1055664 [details]
screenshot-3

Comment 7 Pavel Grunt 2015-07-26 10:26:44 UTC
(In reply to zhoujunqin from comment #3)
> Try to reproduce this issue with old build:
> virt-viewer-0.6.0-12.el7.x86_64
> 
> steps to reproduce this issue:
> 
> 1. Prepare a spice guest:
> # virsh dumpxml l-vm1
> 
>     <channel type='spicevmc'>
>       <target type='virtio' name='com.redhat.spice.0' state='connected'/>
>       <alias name='channel1'/>
>       <address type='virtio-serial' controller='0' bus='0' port='2'/>
>     </channel>
> ...
>     <graphics type='spice' port='5900' autoport='yes' listen='0.0.0.0'>
>       <listen type='address' address='0.0.0.0'/>
>     </graphics>
> ...
>     <video>
>       <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
>       <alias name='video0'/>
>       <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
> function='0x0'/>
>     </video>
> 
> 2. Use remote-viewer connect to guest in windowed mode:
> 
> # remote-viewer spice://$ip:5900
> 
> 3. Resize the window to a size bigger than the screen width
> 
> My question is: 
> Q1: "window" here means virt-viewer display window ?
yes

> Q2: How about "screen width" here means here, screen in VM or in host, i
> think is in VM, but i'm not sure.

screen of the client's monitor, ie if your monitor resolution is 1024x768 then resize the virt-viewer's window to be bigger than 1024x768

> 
> So pgrunt, please help give some advices, thanks.
> 
> In screentshot-1, then i use mouse to drag virt-viewer window to right side,
> then i can see virt-viewer window is set back to the guest screen width, and
> Contents (ie the Date showing) is scaled down to fit into the window, detail
> please see Screentshot-2.
> 
> Then try to verify with new build:
> virt-viewer-2.0-5.el7.x86_64
> 
> Steps same with above.
> 
> Result: After step3,  virt-viewer window can keep where you dragged, and 
> Contents are at scale 100%, in Screentshot-3.
> 
> Please help me check whether my steps and result are enough to verify this
> bug, thanks.

They are enough to verify, the window should not be scaled down

Comment 8 zhoujunqin 2015-07-27 02:26:23 UTC
Thanks for pgrunt's reply, and according to above comments, move this bug from ON_QA to VERIFIED.

Comment 9 David Jaša 2015-09-02 15:23:44 UTC
This bug might not be fixed, the reproducer is:
0. connect to the rhel7 guest with windowed remote-viewer, make sure that arbitrary resolution works (resize window a bit, guest adusts)
1. enlarge guest size using xrandr within the guest to something large enough to trigger the auto-fit-to-client-window-monitor behaviour, e.g.:
    xrandr --output Virtual-0 --mode 1920x1080
  for r-v window residing on fullhd client monitor

Actual result:
  * guest resolution is adjusted to the resolution specified (good)
  * r-v window gets shrunk to fit the client monitor area (bad)
  * arbitrary resolution stops working until guest is shrunk from within again
     (über bad)
  * r-v takes this zoomed-out guest view as 1:1 so View-Zoom-Normal size won't
     resize the window to a size that'd make guest diplay actually 1:1 (über bad
     as well0

Expected result:
  * resolution is changed as requested from the guest
  * 1:1 is always 1:1
  * arbitrary resolution always works

Setting needinfo on Pavel to investigate

Comment 10 zhoujunqin 2015-09-06 05:36:17 UTC
(In reply to David Jaša from comment #9)
Hi David,
i see you comment and i also tried as you described in Comment 9.
Following is my result:
Before when i reproduce/verify this issue i used a rhel6 guest, this time, i also tried with rhel7 guest.

Package version:
virt-viewer-2.0-6.el7.x86_64

Steps:
Prepare a rhel7.2 guest installed with new tree:
http://download.englab.nay.redhat.com/pub/rhel/rel-eng/RHEL-7.2-20150904.0/compose/Server/x86_64/os/

1. Connect to the rhel7 guest with windowed remote-viewer, make sure that arbitrary resolution works (resize window a bit, guest adjusts)
# remote-viewer spice://127.0.0.1:5901

2. My host monitor resolution is: 1280x1024
Enlarge guest size using xrandr within the guest to something large enough to trigger the auto-fit-to-client-window-monitor behaviour, e.g.:
    xrandr --output Virtual-0 --mode 1920x1080

Result now: I can reproduce following result sometimes.
Please see attachment.

But when i test above steps with a rhel7.1 released guest, i cannot reproduce Comment 9 issue, thanks.

Comment 11 zhoujunqin 2015-09-06 05:37:52 UTC
Created attachment 1070628 [details]
rhel7.2 guest screenshot when resolution is 1920*1080

Comment 14 Pavel Grunt 2015-09-11 07:57:25 UTC
David, 
in the step 0 of your reproducer - are you increasing or decreasing the resolution?

As zhoujunqin confirmed your problem is not reproducible with RHEL-7.1 guests, so I think the bug is not in virt-viewer, but it is the bug 1242847.
Jonathon's fix for it is already in f22 kernel (see bug 1212201), can you reproduce your problem there as well?

Comment 16 errata-xmlrpc 2015-11-19 07:37:44 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-2015-2211.html