[Spice-devel] [PATCH spice-server v4 0/4] Better handling reset for streaming device

Lukáš Hrázký lhrazky at redhat.com
Mon Feb 12 12:46:31 UTC 2018


On Sun, 2018-02-11 at 17:19 +0200, Uri Lublin wrote:
> On 01/30/2018 04:33 PM, Christophe de Dinechin wrote:
> > 
> > Christophe de Dinechin writes:
> > 
> > > > On 30 Jan 2018, at 12:56, Frediano Ziglio <fziglio at redhat.com> wrote:
> > > > 
> > > > > 
> > > > > Hi Frediano,
> > > > > 
> > > > > 
> > > > > 
> > > > > > On 30 Jan 2018, at 11:50, Frediano Ziglio <fziglio at redhat.com> wrote:
> > > > > > 
> > > > > > ping the series
> > > > > 
> > > > > I’m currently looking at it. Is it supposed to fix the read errors I had when
> > > > > restarting the streaming agent?
> > > > > 
> > > > 
> > > > Yes, make the reset more stable.
> > > > When you close the device the state will be more consistent allowing
> > > > basically to kill the process using the device in any state and opening
> > > > again. Obviously if you continue to send wrong commands the device will
> > > > keep rejecting them.
> > > > 
> > > > I tried to reproduce the issues reported on IRC and these helped me,
> > > > now I avoid entirely to reboot the guest.
> > > 
> > > OK, right now I get a QEMU crash whenever I do any kind of activity
> > > (the keyboard seems to be what triggers it).
> > > 
> > > I’m trying to reproduce on master to see if your patch is the cause.
> > > That host has gone through some unusual nastiness, and may be
> > > in a geborked state.
> > 
> > Reverting the server to master, I am back to the behavior I had before,
> > where the same series of events leads to
> > 
> > DISPLAY=:1 spice-streaming-agent -c noblock=yes
> > spice-streaming-agent[2240]: UNKNOWN msg of type 5
> > spice-streaming-agent[2240]: BAD VERSION 0 (expected is 1)
> > spice-streaming-agent[2240]: BAD VERSION 108 (expected is 1)
> > spice-streaming-agent[2240]: BAD VERSION 97 (expected is 1)
> > spice-streaming-agent[2240]: read command from device FAILED -- read 1 expected 8
> > spice-streaming-agent[2240]: FAILED to read command
> 
> 
> Hi Christophe,
> 
> There are some problems here:
> 1. (I guess) your spice-streaming-agent sends CURSOR messages
>     which currently the spice-server does not know to handle.
>     (Frediano sent patches for that but still no review).
> 
>     For now try to comment out the code in spice-streaming-agent
>     that sends CURSOR commands.
> 
> 2. spice-server gets an unknown command. It sends a message to the
>     spice-streaming-agent to let it know the server read an invalid
>     message. spice-streaming-agent is missing a code to handle such
>     a message.
> 
>     This should be fixed.

I've got the patch for this. Just wanted to write a unit test for it
and that's where I hit several issues which I'm still trying to
resolve... I might post the patch without a test for now...

Lukas

> 3. When such messages are in play, they are not fully read (code
>     breaks after reading the header). This makes the spice-server
>     and spice-streaming-agent go out of sync).
> 
>     This may be fixed. I'm not sure we can recover
>     all errors, and perhaps the right thing to do is sync
>     with close/open of the virtio-serial-port.
>     However reading the whole message (if it's not too big) should
>     at least keep the server/agent synchronized, even if an unknown
>     message encountered.
> 
> Regards,
>      Uri.
> 
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel


More information about the Spice-devel mailing list