Bug 95365

Summary: Crash when streaming starts
Product: Spice Reporter: Pavel Grunt <pavelgrunt>
Component: serverAssignee: Spice Bug List <spice-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: qemu commandline

Description Pavel Grunt 2016-05-12 16:30:54 UTC
Created attachment 123649 [details]
qemu commandline

spice server crashes when streaming starts.

spice-server commit 7673b388f5c8479f8f8184a46543f68d3ca7fc22

Steps to reproduce:
1. run a win7 vm with "streaming-video=all" (see attachment for more info)
2. connect with a client
3. make it stream (I used some online streaming in firefox)
4. if it does not crash, try to resize guest, or reconnect during streaming

** (process:23484): CRITICAL **: red_upgrade_item_free: assertion 'item->base.refcount != 0' failed

** (process:23484): CRITICAL **: red_upgrade_item_free: assertion 'item->base.refcount != 0' failed

(process:23484): Spice-ERROR **: display-channel.c:1844:display_channel_destroy_surfaces: assertion `!display->surfaces[i].context.canvas' failed
Comment 1 Pavel Grunt 2016-05-12 20:43:37 UTC
git bisect says:
18d3876b78c7f19c577da000d322dbd44e63e456 is the first bad commit
commit 18d3876b78c7f19c577da000d322dbd44e63e456
Author: Jonathon Jongsma <jjongsma@redhat.com>
Date:   Thu Apr 14 16:12:50 2016 -0500

    UpgradeItem: use base PipeItem for refcounting
    
    No need to re-implement refcounting in this subclass.
    
    Acked-by: Frediano Ziglio <fziglio@redhat.com>

:040000 040000 2977c2e13bb23a25d8aa09b6f085dd231181ecf3 b3658ce36b7f761baca006bd2e0d9f0f5182afd2 M	server
Comment 2 Frediano Ziglio 2016-05-12 21:32:20 UTC
static void upgrade_item_free(UpgradeItem *item)
{
    g_return_if_fail(item != NULL);
    g_return_if_fail(item->base.refcount != 0);

    drawable_unref(item->drawable);
    free(item->rects);
    free(item);
}

the refcount condition is inverted.
Comment 3 Frediano Ziglio 2016-05-13 11:40:09 UTC
Fix into master

Thanks

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.