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
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
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.