[Spice-devel] [PATCH spice-gtk v2] session: initialize USB device manager on session creation

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Thu Jan 3 11:41:35 UTC 2019


From: Marc-André Lureau <marcandre.lureau at redhat.com>

Simple command line tools simply connect all channels, however
usbredir channels require that the manager was previously
initialized. Currently, running spicy-stats on a VM with usbredir
channels prints:

(lt-spicy-stats:25224): GSpice-CRITICAL **: 14:30:54.724: spice_usbredir_channel_up: assertion 'priv->host != NULL' failed

(lt-spicy-stats:25224): GSpice-CRITICAL **: 14:30:54.724: usbredir_handle_msg: assertion 'priv->host != NULL' failed

There is not strong reason not to initialize the USB device manager
when the session is created.

Notes:
- when usbredir isn't compiled in, those criticals aren't reached
- a previous attempt was to initialize the usb device manager during
  session instance init, however the manager shouldn't interact with a
  temporary migration session

Fixes:
https://gitlab.freedesktop.org/spice/spice-gtk/issues/67

Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
---
 src/spice-session.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/spice-session.c b/src/spice-session.c
index a2ed401..76c90b3 100644
--- a/src/spice-session.c
+++ b/src/spice-session.c
@@ -1492,7 +1492,17 @@ static void spice_session_class_init(SpiceSessionClass *klass)
  **/
 SpiceSession *spice_session_new(void)
 {
-    return SPICE_SESSION(g_object_new(SPICE_TYPE_SESSION, NULL));
+    SpiceSession *self = SPICE_SESSION(g_object_new(SPICE_TYPE_SESSION, NULL));
+    SpiceSessionPrivate *priv = self->priv;
+    GError *err = NULL;
+
+    priv->usb_manager = spice_usb_device_manager_get(self, &err);
+    if (err != NULL) {
+        SPICE_DEBUG("Could not initialize SpiceUsbDeviceManager - %s", err->message);
+        g_clear_error(&err);
+    }
+
+    return self;
 }
 
 G_GNUC_INTERNAL
-- 
2.20.1.2.gb21ebb671b



More information about the Spice-devel mailing list