Bug 41523 - ASSERT red_channel_client_no_item_being_sent(&dcc->common.base) failed
Summary: ASSERT red_channel_client_no_item_being_sent(&dcc->common.base) failed
Status: RESOLVED FIXED
Alias: None
Product: Spice
Classification: Unclassified
Component: server (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Yonit Halperin
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-06 07:00 UTC by Hans de Goede
Modified: 2011-10-18 23:53 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
fix the placing of the ASSERT (2.32 KB, patch)
2011-10-18 23:53 UTC, Yonit Halperin
Details | Splinter Review

Description Hans de Goede 2011-10-06 07:00:22 UTC
I hit this while debugging issues with spice-gtk (using spicy) and multi monitor
guests. I hit an assert in spicy while it was running under the debugger and left
it sitting in the debugger (and thus stuck).

This caused spice server to first say:
red_wait_outgoing_item: blocked
red_wait_outgoing_item: timeout

Followed by:
red_clear_surface_drawables_from_pipes: ASSERT red_channel_client_no_item_being_sent(&dcc->common.base) failed

I'm not sure if the ASSERT only happened after I really quit the asserted spicy or before.

Here is a bt:
#0  0x0000003000836435 in raise () from /lib64/libc.so.6
#1  0x0000003000837d4b in abort () from /lib64/libc.so.6
#2  0x00007ffff7cf36e7 in red_clear_surface_drawables_from_pipes (
    worker=<optimized out>, surface_id=<optimized out>, force=<optimized out>, 
    wait_for_outgoing_item=<optimized out>) at red_worker.c:2009
#3  red_clear_surface_drawables_from_pipes (worker=0x7ffff47325e0, surface_id=
    0, force=1, wait_for_outgoing_item=1) at red_worker.c:1996
#4  0x00007ffff7cf78a4 in handle_dev_destroy_primary_surface (worker=
    0x7ffff47325e0) at red_worker.c:10322
#5  handle_dev_input (listener=0x7ffff47325e0, events=<optimized out>)
    at red_worker.c:10476
#6  0x00007ffff7cf95b2 in red_worker_main (arg=<optimized out>)
    at red_worker.c:10811
#7  0x0000003001407d31 in start_thread () from /lib64/libpthread.so.0
#8  0x00000030008efdfd in clone () from /lib64/libc.so.6
Comment 1 Yonit Halperin 2011-10-06 07:55:15 UTC
red_wait_outgoing_item timeouted and as a result there was a request to disconnect the client but the procedure that called red_wait_outgoing_item (red_clear_surface_drawables_from_pipes) assumes red_wait_outgoing_item succeeded and thus, it expected red_channel_client_no_item_being_sent to be true
Comment 2 Yonit Halperin 2011-10-18 23:53:40 UTC
Created attachment 52512 [details] [review]
fix the placing of the ASSERT


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.