We still get this error from spice on machine shutting down in Boxes if connected through unix fd socket. Filing a new bug and not reopening bug#83692 cause of: https://bugzilla.gnome.org/show_bug.cgi?id=746806#c1 Here is the spice log: (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x2 (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x2 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1476 focus_in_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1253 release_keys (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x2 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1446 enter_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:727 grab keyboard (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1446 enter_event (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:309 cursor-4:0: set_cursor: flags 0, size 2304 (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:316 cursor-4:0: set_cursor: type alpha(0), 0, 24x24 (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:309 cursor-4:0: set_cursor: flags 0, size 2304 (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:316 cursor-4:0: set_cursor: type alpha(0), 0, 24x24 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1674 button_event press: button 1, state 0x10 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1674 button_event release: button 1, state 0x110 (gnome-boxes:28499): GSpice-DEBUG: channel-main.c:1328 agent connected: no (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1692 display-2:0: 0: FIXME primary destroy, but is display really disabled? (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:435 cursor-4:0: cursor_handle_reset, init_done: 1 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1505 focus_out_event (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1650 primary flags: 1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:652 display-2:0: Create primary canvas (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2387 cursor_reset: no window, returning (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:435 cursor-4:0: cursor_handle_reset, init_done: 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2125 update area, primary: 720x400, area: +0+0 1376x778 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:720x400, window 1379x778, zoom 1 getting display (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:720x400, window 1x1, zoom 1 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1476 focus_in_event (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2702 test cap 1 in 0x12: yes (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1716 display-2:0: monitors config: n: 1/1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1736 display-2:0: monitor id: 0, surface id: 0, +0+0-720x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2391 cursor_reset (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:309 cursor-4:0: set_cursor: flags 1, size 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2125 update area, primary: 720x400, area: +0+0 720x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:720x400, window 1x1, zoom 1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:852 display-2:0: display_handle_mark (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:435 cursor-4:0: cursor_handle_reset, init_done: 1 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2219 widget mark: 1, 0:0 0x17674c0 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1692 display-2:0: 0: FIXME primary destroy, but is display really disabled? (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2391 cursor_reset (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:309 cursor-4:0: set_cursor: flags 1, size 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1505 focus_out_event (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1650 primary flags: 1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:652 display-2:0: Create primary canvas (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2125 update area, primary: 640x400, area: +0+0 720x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:640x400, window 1x1, zoom 1 getting display (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1476 focus_in_event (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2702 test cap 1 in 0x12: yes (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1716 display-2:0: monitors config: n: 1/1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1736 display-2:0: monitor id: 0, surface id: 0, +0+0-640x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2125 update area, primary: 640x400, area: +0+0 640x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:640x400, window 1x1, zoom 1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:852 display-2:0: display_handle_mark (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2219 widget mark: 1, 0:0 0x17674c0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:640x400, window 1379x778, zoom 1 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1460 leave_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:755 ungrab keyboard (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1446 enter_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:727 grab keyboard (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:435 cursor-4:0: cursor_handle_reset, init_done: 1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1692 display-2:0: 0: FIXME primary destroy, but is display really disabled? (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2391 cursor_reset (gnome-boxes:28499): GSpice-DEBUG: channel-cursor.c:309 cursor-4:0: set_cursor: flags 1, size 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1505 focus_out_event (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1650 primary flags: 1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:652 display-2:0: Create primary canvas (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2125 update area, primary: 720x400, area: +0+0 640x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:640x400, window 1379x778, zoom 1 getting display (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:640x400, window 1x1, zoom 1 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1476 focus_in_event (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2702 test cap 1 in 0x12: yes (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1716 display-2:0: monitors config: n: 1/1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:1736 display-2:0: monitor id: 0, surface id: 0, +0+0-720x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:267 update monitor area 0:0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2125 update area, primary: 720x400, area: +0+0 720x400 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:720x400, window 1x1, zoom 1 (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:852 display-2:0: display_handle_mark (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2219 widget mark: 1, 0:0 0x17674c0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1052 recalc geom monitor: 0:0, guest +0+0:720x400, window 1379x778, zoom 1 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1460 leave_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:755 ungrab keyboard (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1446 enter_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:727 grab keyboard (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x0 (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x0 (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1460 leave_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:755 ungrab keyboard (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1460 leave_event (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x0 (gnome-boxes:28499): GSpice-DEBUG: spice-gtk-session.c:176 inputs-3:0: client_modifiers:0x2, guest_modifiers:0x0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:922 main-1:0: Closing the connection: spice_channel_read() - ret=0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2152 main-1:0: channel got error Boxes-Message: machine.vala:164: display Red Hat Enterprise Linux 6.6 disconnected (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1505 focus_out_event (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:1253 release_keys getting display (gnome-boxes:28499): GSpice-DEBUG: spice-session.c:1774 session: disconnecting 0 Cleared displays (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2421 main-1:0: Coroutine exit main-1:0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:922 cursor-4:0: Closing the connection: spice_channel_read() - ret=0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2152 cursor-4:0: channel got error (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:922 inputs-3:0: Closing the connection: spice_channel_read() - ret=0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2152 inputs-3:0: channel got error (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:922 display-2:0: Closing the connection: spice_channel_read() - ret=0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2152 display-2:0: channel got error (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 inputs-3:0: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 display-2:0: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 cursor-4:0: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 record-6:0: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 playback-5:0: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 usbredir-9:0: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 1 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 usbredir-9:1: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 2 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 usbredir-9:2: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 3 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 usbredir-9:3: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-widget.c:2475 channel_destroy 0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2664 main-1:0: channel disconnect 0 (gnome-boxes:28499): GSpice-DEBUG: spice-session.c:1579 no migration in progress (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2620 main-1:0: reset (gnome-boxes:28499): GSpice-DEBUG: channel-main.c:1328 agent connected: no (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2421 cursor-4:0: Coroutine exit cursor-4:0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2421 inputs-3:0: Coroutine exit inputs-3:0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2421 display-2:0: Coroutine exit display-2:0 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2553 main-1:0: channel reset (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2620 cursor-4:0: reset (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2553 cursor-4:0: channel reset (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2620 inputs-3:0: reset (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2553 inputs-3:0: channel reset (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2620 display-2:0: reset (gnome-boxes:28499): GSpice-DEBUG: channel-display.c:767 display-2:0: keeping exisiting primary surface, migration or reset (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2553 display-2:0: channel reset (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2173 main-1:0: Delayed unref channel 0x1f5e920 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2173 cursor-4:0: Delayed unref channel 0x1f72c00 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2173 inputs-3:0: Delayed unref channel 0x17cf070 (gnome-boxes:28499): GSpice-DEBUG: spice-channel.c:2173 display-2:0: Delayed unref channel 0x1f73f70
Not spice-gtk fault, On regular direct spice server socket, we get clean shutdown with poll G_IO_IN and read=0. with a libvirt provided fd, it gets G_IO_IN | G_IO_HUP. Further investigation required on libvirt side.
libvirt used a socketpair, and passes them to qemu/spice using spice_server_add_client
it looks like spice server could use more shutdown() calls here and there.
(In reply to Marc-Andre Lureau from comment #3) > it looks like spice server could use more shutdown() calls here and there. Is that a side-comment or would that help with this bug?
After further research, I think it's expected to get HUP, it doesn't get it with tcp sockets, only local sockets (that's annoying..) It happens on regular close() conditions, so I would just ignore it for now. A clean shutdown would involve a new message to tell the client to first close its end, in order to avoid the HUP. That way the client could distinguish normal termination from unexpected ones. http://lists.freedesktop.org/archives/spice-devel/2015-April/019461.html
Was pushed as http://cgit.freedesktop.org/spice/spice-gtk/commit/?id=372716d93ed929
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.