[Spice-devel] [PATCH spice-gtk 11/15] display: don't reschedule stream if disconnected from session
Christophe Fergeau
cfergeau at redhat.com
Wed Nov 26 08:53:37 PST 2014
ACK.
Christophe
On Tue, Nov 25, 2014 at 02:19:24PM +0100, Marc-André Lureau wrote:
> Avoid the following critical when a channel is disconnected with a
> pending stream (the streams are cleared on channel reset, after
> coroutine exit)
>
> (process:17188): GSpice-CRITICAL **: spice_session_get_mm_time: assertion 'session != NULL' failed
>
> #0 0x00007ffff71c24e5 in spice_session_get_mm_time (session=0x0) at spice-session.c:1999
> #1 0x00007ffff71d438c in display_stream_schedule (st=0xa33040) at channel-display.c:1014
> #2 0x00007ffff71d4a09 in display_stream_render (st=0xa33040,
> st at entry=<error reading variable: value has been optimized out>) at channel-display.c:1165
> #3 0x0000003e1944a553 in g_timeout_dispatch (source=0xad64e0, callback=<optimized out>, user_data=<optimized out>) at gmain.c:4520
> #4 0x0000003e19449aeb in g_main_context_dispatch (context=0x6a32b0) at gmain.c:3111
> #5 0x0000003e19449aeb in g_main_context_dispatch (context=context at entry=0x6a32b0) at gmain.c:3710
> #6 0x0000003e19449e88 in g_main_context_iterate (context=0x6a32b0, block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at gmain.c:3781
> #7 0x0000003e1944a1b2 in g_main_loop_run (loop=0x97e200) at gmain.c:3975
> #8 0x0000003e1c9ebb35 in gtk_main () at gtkmain.c:1207
> #9 0x0000000000430185 in main (argc=1, argv=0x7fffffffdcb8) at virt-viewer-main.c:119
> ---
> gtk/channel-display.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/gtk/channel-display.c b/gtk/channel-display.c
> index 940a5a7..17e2f6e 100644
> --- a/gtk/channel-display.c
> +++ b/gtk/channel-display.c
> @@ -1003,15 +1003,16 @@ static void display_handle_stream_create(SpiceChannel *channel, SpiceMsgIn *in)
> /* coroutine or main context */
> static gboolean display_stream_schedule(display_stream *st)
> {
> + SpiceSession *session = spice_channel_get_session(st->channel);
> guint32 time, d;
> SpiceStreamDataHeader *op;
> SpiceMsgIn *in;
>
> SPICE_DEBUG("%s", __FUNCTION__);
> - if (st->timeout)
> + if (st->timeout || !session)
> return TRUE;
>
> - time = spice_session_get_mm_time(spice_channel_get_session(st->channel));
> + time = spice_session_get_mm_time(session);
> in = g_queue_peek_head(st->msgq);
>
> if (in == NULL) {
> --
> 2.1.0
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20141126/2b85fec0/attachment.sig>
More information about the Spice-devel
mailing list