Bug 810544
Summary: | virt-viewer adds 1px black bar to the bottom in full screen mode, thus causing guest to be unnecessarily scaled | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | David Jaša <djasa> |
Component: | virt-viewer | Assignee: | Daniel Berrangé <berrange> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 6.3 | CC: | dblechte, desktop-qa-list, dyasny, gkong, jwu, mzhan, rwu, yupzhang, zpeng |
Target Milestone: | rc | ||
Target Release: | 6.3 | ||
Hardware: | i686 | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | virt-viewer-0.5.2-6.el6 | Doc Type: | Bug Fix |
Doc Text: |
Cause:
On i386 platforms an arithmetic error caused inaccurate calculation of the desired window size
Consequence:
On i386 platforms the window may be resized 1 pixel too small, causing the guest display to be unnecessarily scaled
Fix:
The scaling code was changed to round to the nearest integer, instead of truncating, avoiding a reliance on precision of floating point calculations.
Result:
On i386 windows are resized such that scaling is not required if the guest display is small enough to fit on the host desktop
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2012-06-20 12:12:11 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: |
minor update: does not happen also with: virt-viewer-0.5.2-4.el6.x86_64 spice-gtk-0.11-6.el6.x86_64 iow the same revisions as on faulty client but in x86_64 versions. This bug occurs on all i686 boxes I've tried with most recent versions available: virt-viewer-0.5.2-4.el6.i686 spice-gtk-0.11-7.el6.i686 Given that replacement of spicec with virt-viewer is approaching quickly, I'm marking this as a Regression and I'm raising priority of this one. Note: spicy on the same system works just fine. Created attachment 577719 [details]
backtrace of i686 binary with black bar
Created attachment 577720 [details]
backtrace of x86_64 binary without black bar
all versions should be the same in these two backtraces, the VM the clients connected to is the very same.
Created attachment 578056 [details]
screenshot: remote-viewer with blurred fonts and 1px black under the cursor
Created attachment 578057 [details]
screenshot: spicy with clear fonts and cursor right next to bottom border
These two screenshots demonstrate the problem better.
I have been unable to reproduce this problem so far. The virt-viewer layout doesn't have any fixed padding around it, so any incorrect sizing must be related to resizing of the spice-gtk widget. I can't see any reason for a difference between i686 and x86_64 binaries. I guess there is perhaps a race condition in the full screen resizing code that by luck only occurs on one platform. It is possible that getting the logs fro 'remote-viewer --debug --spice-debug URI' would show something interesting - can you try to capture logs in each of the two scenarios so we can compare (In reply to comment #7) > I have been unable to reproduce this problem so far. The virt-viewer layout > doesn't have any fixed padding around it, so any incorrect sizing must be > related to resizing of the spice-gtk widget. I can't see any reason for a > difference between i686 and x86_64 binaries. It definitely is there, i couldn't reproduce on any x86_64 machine while all i686 ones do exhibit it. > I guess there is perhaps a race > condition in the full screen resizing code that by luck only occurs on one > platform. This applies to windowed mode as well, as shown by screenshots above. > > It is possible that getting the logs fro 'remote-viewer --debug --spice-debug > URI' would show something interesting - can you try to capture logs in each of > the two scenarios so we can compare sure, i686 follows: ** (remote-viewer:8275): DEBUG: fullscreen display 0: 0 ** (remote-viewer:8275): DEBUG: fullscreen display 0: 0 ** (remote-viewer:8275): DEBUG: Opening display to spice://<IP>/?port=5900 ** (remote-viewer:8275): DEBUG: Guest spice://<IP>/?port=5900 has a spice display (remote-viewer:8275): GSpice-DEBUG: spice-session.c:124 New session (compiled from package spice-gtk 0.11) (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8afd088 (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8afd138 (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8afd0e0 ** (remote-viewer:8275): DEBUG: After open connection callback fd=-1 ** (remote-viewer:8275): DEBUG: Opening connection to display at spice://<IP>/?port=5900 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:124 main-1:0: spice_channel_constructed (remote-viewer:8275): GSpice-DEBUG: spice-gtk-session.c:791 Changing main channel from (nil) to 0x8b03668 ** (remote-viewer:8275): DEBUG: notebook show status 0x8acb010 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x8b03668 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x8b036b8 for main-1:0 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1497 Finally connected (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1664 main-1:0: spice_channel_recv_link_msg: 2 caps (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1680 got channel caps 0:0x1 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 ** (remote-viewer:8275): DEBUG: main channel: opened (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1089 main-1:0: channel up, state 5 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1659 set mm time: 85110402 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:124 cursor-4:0: spice_channel_constructed (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:124 display-2:0: spice_channel_constructed ** (remote-viewer:8275): DEBUG: notebook show status 0x8acb010 ** (remote-viewer:8275): DEBUG: new display channel (#0) (remote-viewer:8275): vnc-keymap-DEBUG: vncdisplaykeymap.c:174 Using evdev keycode mapping (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:1528 mouse mode 1 (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 ** (remote-viewer:8275): DEBUG: notebook show status 0x8acb010 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:124 inputs-3:0: spice_channel_constructed ** (remote-viewer:8275): DEBUG: new inputs channel ** (remote-viewer:8275): DEBUG: Display size request 100x100 (desktop 100x100) ** (remote-viewer:8275): DEBUG: Allocated 400x375 ** (remote-viewer:8275): DEBUG: Child allocate 375x375 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x8b57a00 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x8b57a50 for display-2:0 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x8b3f178 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x8b3f1c8 for cursor-4:0 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x8bb08d0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x8bb0920 for inputs-3:0 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1497 Finally connected (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1497 Finally connected (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1497 Finally connected ** (remote-viewer:8275): DEBUG: Display size request 50x50 (desktop 100x100) ** (remote-viewer:8275): DEBUG: Allocated 400x375 ** (remote-viewer:8275): DEBUG: Child allocate 375x375 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1664 display-2:0: spice_channel_recv_link_msg: 1 caps (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1664 cursor-4:0: spice_channel_recv_link_msg: 1 caps (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1089 display-2:0: channel up, state 5 (remote-viewer:8275): GSpice-DEBUG: channel-display.c:767 spice_display_channel_up: cache_size 83886080, glz_window_size 12582912 (bytes) (remote-viewer:8275): GSpice-DEBUG: channel-display.c:625 display: create primary canvas (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 720x400, window 0x0, zoom 1, offset +0+0 ** (remote-viewer:8275): DEBUG: spice desktop resize 720x400 ** (remote-viewer:8275): DEBUG: Preparing main window resize ** (remote-viewer:8275): DEBUG: Decided todo 720x400 (desktop is 720x400, fullscreen is 1680x1050 ** (remote-viewer:8275): DEBUG: Display size request 720x400 (desktop 720x400) ** (remote-viewer:8275): DEBUG: Allocated 720x400 ** (remote-viewer:8275): DEBUG: Child allocate 720x399 (remote-viewer:8275): GSpice-DEBUG: channel-display.c:815 display_handle_mark ** (remote-viewer:8275): DEBUG: Display size request 50x50 (desktop 720x400) ** (remote-viewer:8275): DEBUG: Allocated 720x400 ** (remote-viewer:8275): DEBUG: Child allocate 720x399 (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:1601 widget mark: 1, channel 0 ** (remote-viewer:8275): DEBUG: display mark 1 ** (remote-viewer:8275): DEBUG: notebook show display 0x8acb010 (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:1075 focus_in_event (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:925 release_keys (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 720x400, window 720x399, zoom 1, offset +0+0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1664 inputs-3:0: spice_channel_recv_link_msg: 1 caps (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1089 cursor-4:0: channel up, state 5 (remote-viewer:8275): GSpice-DEBUG: channel-cursor.c:342 set_cursor: type 0, 8a87cc000000010, 0x32, flags 1, size 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1089 inputs-3:0: channel up, state 5 (remote-viewer:8275): GSpice-DEBUG: channel-base.c:80 spice_channel_handle_notify: channel main-1:0 -- warn!!! #0: keyboard channel is insecure ** (remote-viewer:8275): DEBUG: Window closed (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:1102 focus_out_event (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:925 release_keys (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:290 spice display dispose (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:290 spice display dispose (remote-viewer:8275): GSpice-DEBUG: spice-widget.c:314 Finalize spice display (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit inputs-3:0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit display-2:0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit cursor-4:0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit main-1:0 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:124 New session (compiled from package spice-gtk 0.11) (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8a87920 (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8a87a68 (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8bc7ef0 (remote-viewer:8275): GSpice-DEBUG: channel-display.c:732 keeping exisiting primary surface, migration or reset ** (remote-viewer:8275): DEBUG: main channel: closed (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel inputs-3:0 0x8bb08d0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:139 inputs-3:0: spice_channel_dispose 0x8bb08d0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:161 inputs-3:0: spice_channel_finalize 0x8bb08d0 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel display-2:0 0x8b57a00 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:139 display-2:0: spice_channel_dispose 0x8b57a00 ** (remote-viewer:8275): DEBUG: zap session channel (#0) (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:161 display-2:0: spice_channel_finalize 0x8b57a00 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel cursor-4:0 0x8b3f178 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:139 cursor-4:0: spice_channel_dispose 0x8b3f178 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:161 cursor-4:0: spice_channel_finalize 0x8b3f178 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel main-1:0 0x8b03668 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:139 main-1:0: spice_channel_dispose 0x8b03668 ** (remote-viewer:8275): DEBUG: zap main channel (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:139 session dispose (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:124 New session (compiled from package spice-gtk 0.11) (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8bb0d40 (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8b68cc0 (remote-viewer:8275): GSpice-DEBUG: usb-device-manager.c:595 device added 0x8b68c38 ** (remote-viewer:8275): DEBUG: notebook show status 0x8acb010 ** (remote-viewer:8275): DEBUG: Guest spice://<IP>/?port=5900 display has disconnected, shutting down (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:139 session dispose (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 (remote-viewer:8275): GSpice-DEBUG: spice-channel.c:161 main-1:0: spice_channel_finalize 0x8b03668 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:8275): GSpice-DEBUG: spice-session.c:139 session dispose (remote-viewer:8275): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 ** (remote-viewer:8275): DEBUG: Set connect info: (null),(null),(null),-1,(null),(null),(null),0 $ rpm -q --whatprovides $(rpm -qR virt-viewer) | sort | uniq | grep -v "no package provides" atk-1.28.0-2.el6.i686 bash-4.1.2-8.el6.i686 cairo-1.8.8-3.1.el6.i686 chkconfig-1.3.49.3-2.el6.i686 fontconfig-2.8.0-3.el6.i686 freetype-2.3.11-6.el6_2.9.i686 glib2-2.22.5-7.el6.i686 glibc-2.12-1.79.el6.i686 gnutls-2.8.5-4.el6_2.2.i686 gtk2-2.18.9-10.el6.i686 gtk-vnc-0.3.10-3.el6.i686 libvirt-client-0.9.10-11.el6.i686 libxml2-2.7.6-4.el6_2.4.i686 openssh-clients-5.3p1-76.el6.i686 pango-1.28.1-3.el6_0.5.i686 spice-glib-0.11-8.el6.i686 spice-gtk-0.11-8.el6.i686 x86_64: $ remote-viewer --debug --spice-debug spice://<IP>/?port=5900 ** (remote-viewer:3967): DEBUG: fullscreen display 0: 0 ** (remote-viewer:3967): DEBUG: fullscreen display 0: 0 ** (remote-viewer:3967): DEBUG: Opening display to spice://<IP>/?port=5900 ** (remote-viewer:3967): DEBUG: Guest spice://<IP>/?port=5900 has a spice display (remote-viewer:3967): GSpice-DEBUG: spice-session.c:124 New session (compiled from package spice-gtk 0.11) (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x11c9dd0 (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x11c9e50 (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x11c9ed0 ** (remote-viewer:3967): DEBUG: After open connection callback fd=-1 ** (remote-viewer:3967): DEBUG: Opening connection to display at spice://<IP>/?port=5900 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:124 main-1:0: spice_channel_constructed (remote-viewer:3967): GSpice-DEBUG: spice-gtk-session.c:791 Changing main channel from (nil) to 0x11db600 ** (remote-viewer:3967): DEBUG: notebook show status 0x117a070 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x11db600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x11db688 for main-1:0 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1497 Finally connected (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1664 main-1:0: spice_channel_recv_link_msg: 2 caps (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1680 got channel caps 0:0x1 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 ** (remote-viewer:3967): DEBUG: main channel: opened (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1089 main-1:0: channel up, state 5 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1659 set mm time: 86228996 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:124 cursor-4:0: spice_channel_constructed (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:124 display-2:0: spice_channel_constructed ** (remote-viewer:3967): DEBUG: notebook show status 0x117a070 ** (remote-viewer:3967): DEBUG: new display channel (#0) (remote-viewer:3967): vnc-keymap-DEBUG: vncdisplaykeymap.c:174 Using evdev keycode mapping (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:1528 mouse mode 1 (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 0x0, window 0x0, zoom 1, offset +0+0 ** (remote-viewer:3967): DEBUG: notebook show status 0x117a070 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:124 inputs-3:0: spice_channel_constructed ** (remote-viewer:3967): DEBUG: new inputs channel ** (remote-viewer:3967): DEBUG: Display size request 100x100 (desktop 100x100) ** (remote-viewer:3967): DEBUG: Allocated 400x375 ** (remote-viewer:3967): DEBUG: Child allocate 375x375 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x127da00 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x127da88 for display-2:0 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x1264600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x1264688 for cursor-4:0 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2238 Open coroutine starting 0x1279600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2090 Started background coroutine 0x1279688 for inputs-3:0 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1520 Resolving host <IP> 5900 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1533 Trying one socket (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1482 Socket pending (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1497 Finally connected (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1497 Finally connected ** (remote-viewer:3967): DEBUG: Display size request 50x50 (desktop 100x100) ** (remote-viewer:3967): DEBUG: Allocated 400x375 ** (remote-viewer:3967): DEBUG: Child allocate 375x375 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1497 Finally connected (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1664 cursor-4:0: spice_channel_recv_link_msg: 1 caps (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1664 display-2:0: spice_channel_recv_link_msg: 1 caps (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1170 Peer version: 2:2 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1664 inputs-3:0: spice_channel_recv_link_msg: 1 caps (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1674 got common caps 0:0xB (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 0 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 2 in 0xB: no (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 1 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2467 test cap 3 in 0xB: yes (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1710 use mini header: 1 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1089 cursor-4:0: channel up, state 5 (remote-viewer:3967): GSpice-DEBUG: channel-cursor.c:342 set_cursor: type 18261, 4245442d65636970, 8250x0, flags 1, size 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1089 display-2:0: channel up, state 5 (remote-viewer:3967): GSpice-DEBUG: channel-display.c:767 spice_display_channel_up: cache_size 83886080, glz_window_size 12582912 (bytes) (remote-viewer:3967): GSpice-DEBUG: channel-base.c:80 spice_channel_handle_notify: channel main-1:0 -- warn!!! #0: keyboard channel is insecure (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1089 inputs-3:0: channel up, state 5 (remote-viewer:3967): GSpice-DEBUG: channel-display.c:625 display: create primary canvas (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 720x400, window 0x0, zoom 1, offset +0+0 ** (remote-viewer:3967): DEBUG: spice desktop resize 720x400 ** (remote-viewer:3967): DEBUG: Preparing main window resize ** (remote-viewer:3967): DEBUG: Decided todo 720x400 (desktop is 720x400, fullscreen is 1680x1050 ** (remote-viewer:3967): DEBUG: Display size request 720x400 (desktop 720x400) ** (remote-viewer:3967): DEBUG: Allocated 720x400 ** (remote-viewer:3967): DEBUG: Child allocate 720x400 ** (remote-viewer:3967): DEBUG: Display size request 50x50 (desktop 720x400) ** (remote-viewer:3967): DEBUG: Allocated 720x400 ** (remote-viewer:3967): DEBUG: Child allocate 720x400 (remote-viewer:3967): GSpice-DEBUG: channel-display.c:815 display_handle_mark (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:1601 widget mark: 1, channel 0 ** (remote-viewer:3967): DEBUG: display mark 1 ** (remote-viewer:3967): DEBUG: notebook show display 0x117a070 (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:1075 focus_in_event (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:925 release_keys (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:781 monitors: id 0, guest 720x400, window 720x400, zoom 1, offset +0+0 ** (remote-viewer:3967): DEBUG: Window closed (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:1102 focus_out_event (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:925 release_keys (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:290 spice display dispose (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:290 spice display dispose (remote-viewer:3967): GSpice-DEBUG: spice-widget.c:314 Finalize spice display (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit inputs-3:0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit display-2:0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit cursor-4:0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:1960 channel destroy (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2032 channel has error, breaking loop (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2220 Coroutine exit main-1:0 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:124 New session (compiled from package spice-gtk 0.11) (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x123b3e0 (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x123b460 (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x1230dc0 (remote-viewer:3967): GSpice-DEBUG: channel-display.c:732 keeping exisiting primary surface, migration or reset ** (remote-viewer:3967): DEBUG: main channel: closed (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel inputs-3:0 0x1279600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:139 inputs-3:0: spice_channel_dispose 0x1279600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:161 inputs-3:0: spice_channel_finalize 0x1279600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel display-2:0 0x127da00 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:139 display-2:0: spice_channel_dispose 0x127da00 ** (remote-viewer:3967): DEBUG: zap session channel (#0) (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:161 display-2:0: spice_channel_finalize 0x127da00 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel cursor-4:0 0x1264600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:139 cursor-4:0: spice_channel_dispose 0x1264600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:161 cursor-4:0: spice_channel_finalize 0x1264600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2073 Delayed unref channel main-1:0 0x11db600 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:139 main-1:0: spice_channel_dispose 0x11db600 ** (remote-viewer:3967): DEBUG: zap main channel (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:139 session dispose (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:124 New session (compiled from package spice-gtk 0.11) (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x1274380 (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x1111a40 (remote-viewer:3967): GSpice-DEBUG: usb-device-manager.c:595 device added 0x1111ac0 ** (remote-viewer:3967): DEBUG: notebook show status 0x117a070 ** (remote-viewer:3967): DEBUG: Guest spice://<IP>/?port=5900 display has disconnected, shutting down (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:2433 channel disconnect 12 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:139 session dispose (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 (remote-viewer:3967): GSpice-DEBUG: spice-channel.c:161 main-1:0: spice_channel_finalize 0x11db600 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 0 (remote-viewer:3967): GSpice-DEBUG: spice-session.c:139 session dispose (remote-viewer:3967): GSpice-DEBUG: spice-session.c:1381 session: disconnecting 1 ** (remote-viewer:3967): DEBUG: Set connect info: (null),(null),(null),-1,(null),(null),(null),0 $ rpm -q --whatprovides $(rpm -qR virt-viewer) | sort | uniq | grep -v "no package provides" atk-1.28.0-2.el6.x86_64 bash-4.1.2-8.el6.x86_64 cairo-1.8.8-3.1.el6.x86_64 chkconfig-1.3.49.3-2.el6.x86_64 fontconfig-2.8.0-3.el6.x86_64 freetype-2.3.11-6.el6_2.9.x86_64 glib2-2.22.5-7.el6.x86_64 glibc-2.12-1.79.el6.x86_64 gnutls-2.8.5-4.el6_2.2.x86_64 gtk2-2.18.9-10.el6.x86_64 gtk-vnc-0.3.10-3.el6.x86_64 libvirt-client-0.9.10-11.el6.x86_64 libxml2-2.7.6-4.el6_2.4.x86_64 openssh-clients-5.3p1-76.el6.x86_64 pango-1.28.1-3.el6_0.5.x86_64 spice-glib-0.11-8.el6.x86_64 spice-gtk-0.11-8.el6.x86_64 Thanks that is somewhat helpful. This part on i686: ** (remote-viewer:8275): DEBUG: spice desktop resize 720x400 ** (remote-viewer:8275): DEBUG: Preparing main window resize ** (remote-viewer:8275): DEBUG: Decided todo 720x400 (desktop is 720x400, fullscreen is 1680x1050 ** (remote-viewer:8275): DEBUG: Display size request 720x400 (desktop 720x400) ** (remote-viewer:8275): DEBUG: Allocated 720x400 ** (remote-viewer:8275): DEBUG: Child allocate 720x399 (remote-viewer:8275): GSpice-DEBUG: channel-display.c:815 display_handle_mark ** (remote-viewer:8275): DEBUG: Display size request 50x50 (desktop 720x400) ** (remote-viewer:8275): DEBUG: Allocated 720x400 ** (remote-viewer:8275): DEBUG: Child allocate 720x399 we get an off-by-1 error there. Whereas on x86_64 it is correct ** (remote-viewer:3967): DEBUG: spice desktop resize 720x400 ** (remote-viewer:3967): DEBUG: Preparing main window resize ** (remote-viewer:3967): DEBUG: Decided todo 720x400 (desktop is 720x400, fullscreen is 1680x1050 ** (remote-viewer:3967): DEBUG: Display size request 720x400 (desktop 720x400) ** (remote-viewer:3967): DEBUG: Allocated 720x400 ** (remote-viewer:3967): DEBUG: Child allocate 720x400 ** (remote-viewer:3967): DEBUG: Display size request 50x50 (desktop 720x400) ** (remote-viewer:3967): DEBUG: Allocated 720x400 ** (remote-viewer:3967): DEBUG: Child allocate 720x400 Fixed upstream commit c1af3ab0cc3aad382f6bd396f62ae76f3052c553 Author: Daniel P. Berrange <berrange> Date: Thu Apr 19 16:15:11 2012 +0100 Fix scaling of window to avoid integer truncation Use round() instead of integer truncation when scaling the window, to avoid floating point precision problems on i386 Hi David, I am QE in Beijing. I can reproduce your bug on virt-viewer-0.5.2-4.el6.i686, but the virt-viewer-0.5.2-3.el6.i686 still has this bug, maybe this bug always exists on i686 platform. We need to define it is a regression bug or not. Please provide the previous version of i686 because the Regression Keywords. Thanks a lot! Hi Jingxian, this is a regression from spicec behavior which is being replaced with remote-viewer. NB, it is not a regression wrt previous virt-viewer builds in RHEL-6.2 - the i686 code was always broken. Fix applied to virt-viewer-0.5.2-6.el6 Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: On i386 platforms an arithmetic error caused inaccurate calculation of the desired window size Consequence: On i386 platforms the window may be resized 1 pixel too small, causing the guest display to be unnecessarily scaled Fix: The scaling code was changed to round to the nearest integer, instead of truncating, avoiding a reliance on precision of floating point calculations. Result: On i386 windows are resized such that scaling is not required if the guest display is small enough to fit on the host desktop Reproduced build virt-viewer-0.5.2-4.el6.i686 Verified pass on the build virt-viewer-0.5.2-6.el6.i686 Reproduced steps: 1. Have a running guest on a x86_64 host. 2. run #virt-viewer -c qemu+ssh://root@ip/system $guestname 3. run #remote-viewer vnc://ip:port Actual result: 1. The 1px black bar is not there. Change this bug to VERIFIED. 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-2012-0772.html |
Created attachment 575788 [details] screenshot Description of problem: virt-viewer adds 1px black bar to the bottom in full screen mode, thus causing guest to be unnecessarily scaled. Version-Release number of selected component (if applicable): virt-viewer-0.5.2-4.el6.i686 spice-gtk-0.11-6.el6.i686 How reproducible: always on the machine where I hit the bug never on different machine with the same virt-viewer & spice-gtk versions Steps to Reproduce: 1. 2. 3. Actual results: Expected results: Additional info: does not happen on: virt-viewer-0.5.2-3.el6.x86_64 spice-gtk-0.11-5.el6.x86_64