[Spice-devel] [spice-gtk v1 1/2] Revert "channel-usbredir: Fix crash on channel-up"

Frediano Ziglio fziglio at redhat.com
Wed Apr 25 08:26:40 UTC 2018


> 
> Hi,
> 
> On Wed, Apr 25, 2018 at 04:05:00AM -0400, Frediano Ziglio wrote:
> > > 
> > > Ping
> > > 
> > 
> > Looking back at the comments looks like this new set is still
> > not doing the right thing and you agree, which is confusing to
> > me.
> 
> Well, spice-session holds the reference to SpiceUsbDeviceManager
> and has API to give that reference to different
> SpiceUsbredirChannel so I do think it should be fine to
> initialize it which solves that rhbz#1399838 bug.
> 
> But while doing that, regression on migration, rhbz#1558043,
> which is not easy to solve while keeping that patch.
> 
> > It's replacing a crash with a critical warning ignoring the
> > problem. Well... maybe this is actually a progress.
> 
> Indeed, I would rather not have the regression while replacing a
> crash with a critical, yes.
> 
> > Maybe if you have an idea how it should behave at the end after
> > removing the critical opening a new bug and stating in the new
> > commit would be more clear.
> > 
> > Would be good also to have an idea of the different cases we
> > should handle.
> 
> Besides avoiding regression... SpiceUsbDeviceManager is only
> initialized on UI objects in spice-gtk. That should be fixed at
> some point as non gtk tools like spicy-stats might do usb
> redirection.
> 
> If this patches seems like good progress, I'll file a bug to fix
> the critical that this patch set introduces, yes :)
> 

If you propose a solution with a "if the patches seems like good progress"
looks like you are not sure about it. You should propose good patches :-)

> Cheers,
>         toso
> 
> > > On Fri, Apr 06, 2018 at 09:59:43AM +0200, Victor Toso wrote:
> > > > From: Victor Toso <me at victortoso.com>
> > > > 
> > > > This reverts commit 291f3e4419e6fb4077ae43a5e09eb1c37b9dd729
> > > > 
> > > > Follow up patch should address rhbz#1399838 mentioned in commit above
> > > > in a different way.
> > > > 
> > > > Major reason to revert is that the SpiceUsbDeviceManager object is
> > > > kept in SpiceSession as an easy way to share it between different
> > > > SpiceUsbredirChannel while SpiceSession itself does not use it. This
> > > > causes problems on migration as we start a new session with a new
> > > > SpiceUsbDeviceManager object while the previous one still exists.
> > > > 

Maybe SpiceUsbDeviceManager should be a global (singleton) meaning that you
should not create a new object but just add a reference to it even from
another SpiceSession?

> > > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1558043
> > > > ---
> > > >  src/spice-session.c | 7 -------
> > > >  1 file changed, 7 deletions(-)
> > > > 
> > > > diff --git a/src/spice-session.c b/src/spice-session.c
> > > > index 57acc63..f856244 100644
> > > > --- a/src/spice-session.c
> > > > +++ b/src/spice-session.c
> > > > @@ -280,7 +280,6 @@ static void spice_session_init(SpiceSession
> > > > *session)
> > > >  {
> > > >      SpiceSessionPrivate *s;
> > > >      gchar *channels;
> > > > -    GError *err = NULL;
> > > >  
> > > >      SPICE_DEBUG("New session (compiled from package " PACKAGE_STRING
> > > >      ")");
> > > >      s = session->priv = SPICE_SESSION_GET_PRIVATE(session);
> > > > @@ -293,12 +292,6 @@ static void spice_session_init(SpiceSession
> > > > *session)
> > > >      s->images = cache_image_new((GDestroyNotify)pixman_image_unref);
> > > >      s->glz_window = glz_decoder_window_new();
> > > >      update_proxy(session, NULL);
> > > > -
> > > > -    s->usb_manager = spice_usb_device_manager_get(session, &err);
> > > > -    if (err != NULL) {
> > > > -        SPICE_DEBUG("Could not initialize SpiceUsbDeviceManager - %s",
> > > > err->message);
> > > > -        g_clear_error(&err);
> > > > -    }
> > > >  }
> > > >  
> > > >  static void
> > 
> > Frediano
> 


More information about the Spice-devel mailing list