Bug 1411380

Summary: Mouse cursor disappears as it enters Desktop#2 zone.
Product: Red Hat Enterprise Linux 7 Reporter: Andrei Stepanov <astepano>
Component: spice-gtkAssignee: Default Assignee for SPICE Bugs <rh-spice-bugs>
Status: CLOSED ERRATA QA Contact: SPICE QE bug list <spice-qe-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: astepano, dblechte, jjongsma, juzhou, kuwei, mxie, mzhan, rbalakri, rduda, tpelka, tzheng, victortoso, xiaodwan
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: spice-gtk-0.34-1.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 08:50:15 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:
Description Flags
remote-viewer log + export SPICE_DEBUG=1 none

Description Andrei Stepanov 2017-01-09 15:21:10 UTC
Mouse pointer disappears as in enters in desktop 2 zone.

spice-vdagent-0.14.0-12.el6.i686 (RHEL6.9 32)
virt-viewer-2.0-12.el7.x86_64 (RHEL7.3.z)
spice-server-0.12.4-20.el7_3.x86_64 (RHV4.1beta)

How reproducible: always

Steps to Reproduce:
1. Have VM with a RHEL6.9 32bit.
2. Edit the VM, in "Console" options set Monitors == 4.
3. Connect to the VM with remote-viewer in window mode.
4. Enable second display: in remote-viewer select: View -> Displays -> Display #2.
4. Close remote-viewer.
5. Connect to the VM.

Actual results: mouse disappears while entering in Display#2 zone.

This bug is reproducible only for guest RHEL6.9 32bit. Guest RHEL6.9 64bit works as expected.

Comment 1 Andrei Stepanov 2017-01-09 15:24:38 UTC
Created attachment 1238802 [details]
remote-viewer log + export SPICE_DEBUG=1

Comment 2 Pavel Grunt 2017-01-09 15:41:56 UTC
Do you see a "dot" shaped cursor with SPICE_DEBUG_CURSOR set ?

export SPICE_DEBUG_CURSOR=1

Comment 3 Andrei Stepanov 2017-01-09 15:48:51 UTC
Yes, I can see huge dot as mouse enters Desktop#2.
As mouse enters Desktop#1 pointer doesn't change.

Comment 5 Pavel Grunt 2017-01-11 15:58:42 UTC
when running with --debug --spice-debug :

(remote-viewer:7871): virt-viewer-DEBUG: creating spice display (#:0)
(remote-viewer:7871): virt-viewer-DEBUG: Insert display 0 0x1070360
(remote-viewer:7871): GSpice-DEBUG: spice-channel.c:2614 cursor-4:0: Open coroutine starting 0x1d73040
(remote-viewer:7871): GSpice-DEBUG: spice-channel.c:2455 cursor-4:0: Started background coroutine 0x1d726a0
(remote-viewer:7871): GSpice-DEBUG: spice-session.c:2192 cursor-4:0: Using TLS, port 5901
(remote-viewer:7871): GSpice-DEBUG: spice-channel.c:1244 cursor-4:0: channel up, state 3
(remote-viewer:7871): GSpice-DEBUG: channel-cursor.c:308 cursor-4:0: set_cursor: flags 0, size 2304
(remote-viewer:7871): GSpice-DEBUG: channel-cursor.c:315 cursor-4:0: set_cursor: type alpha(0), 0, 24x24
(remote-viewer:7871): GSpice-DEBUG: channel-display.c:1739 display-2:0: received new monitors config from guest: n: 2/4
(remote-viewer:7871): GSpice-DEBUG: channel-display.c:1759 display-2:0: monitor id: 0, surface id: 0, +0+0-1024x768
(remote-viewer:7871): GSpice-DEBUG: channel-display.c:1759 display-2:0: monitor id: 1, surface id: 0, +1024+0-1024x744
(remote-viewer:7871): GSpice-DEBUG: spice-widget.c:2365 mouse mode 2
(remote-viewer:7871): GSpice-DEBUG: channel-display.c:490 display-2:0: get primary 0x7f7d447cc010
(remote-viewer:7871): virt-viewer-DEBUG: creating spice display (#:1)

There is cursor set before the other display is created. It may suggest that the cursor is visible only for the first display but not for the other.

Comment 6 Andrei Stepanov 2017-01-12 16:22:53 UTC
This bugs depends on:
# chkconfig ovirt-guest-agent off/on

chkconfig ovirt-guest-agent on - the bug is not reproducible
chkconfig ovirt-guest-agent off - the bug is reproducible

Comment 7 Pavel Grunt 2017-01-13 13:53:26 UTC
Patch was posted upstream for review:
https://lists.freedesktop.org/archives/spice-devel/2017-January/034972.html

Comment 8 Jonathon Jongsma 2017-04-25 16:41:28 UTC
I just noticed that this patch did not ever go upstream after discussion with Marc-Andre. Pavel are you working on a different approach here?

Comment 9 Pavel Grunt 2017-04-25 17:21:30 UTC
I am, wip on a more robust solution as discussed in the mailing list:
https://github.com/xerus/spice-gtk/tree/cursor_gtk

Comment 10 Jonathon Jongsma 2017-05-01 20:16:16 UTC
Shall we change this back to ASSIGNED then, or would you rather keep it as POST?

Comment 11 Pavel Grunt 2017-05-12 15:19:01 UTC
Posted another version: https://lists.freedesktop.org/archives/spice-devel/2017-May/037543.html

Comment 12 Victor Toso 2017-05-30 12:36:39 UTC
c3ee2cd0b32d286ca14678e9d6e12372 widget: Return early on cursor set without shape
e691954be45908702f227bc1c6f22697 widget: Set cursor during construction
c2a9c5dcccd40a35f6cf5c3af8087beb Deprecate "cursor-set" signal
d24db22d3c41684d51ea9c80bc47f83d cursor: Add cursor shape property

Comment 13 Victor Toso 2017-05-30 12:49:41 UTC
Only first cursor is missing for extra displays. Any new cursor shape will make it show again.
Moving to 7.5, keeping it on POST

Comment 14 Victor Toso 2017-11-15 11:13:57 UTC
All bits from comment #12 are present after spice-gtk rebase.

Comment 19 errata-xmlrpc 2018-04-10 08:50:15 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://access.redhat.com/errata/RHBA-2018:0672