Bug 972787

Summary: qemu segfault when quickly closing virt-manager VM view
Product: [Fedora] Fedora Reporter: Christophe Fergeau <cfergeau>
Component: spiceAssignee: Christophe Fergeau <cfergeau>
Status: CLOSED EOL QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: alexl, cfergeau, dblechte, hdegoede, jforbes, kem, marcandre.lureau
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-17 15:31:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Christophe Fergeau 2013-06-10 15:30:19 UTC
I hit that issue when trying to reproduce https://bugzilla.redhat.com/show_bug.cgi?id=901880

Steps to reproduce:
- start virt-manager
- double click on a running VM to connect to it (I used a win7 VM)
- quickly close it with alt+f4 (make sure the cursor is outside of the VM window so that it's not grabbed)
- repeat that 5 to 10 times

Result: qemu crashes on a spice-server assert:

#0  0x00007f001b9bc819 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007f001b9bdf28 in __GI_abort () at abort.c:90
#2  0x00007f001c7722dc in spice_logv (log_domain=0x7f001c7e8086 "Spice", log_level=SPICE_LOG_LEVEL_ERROR,
    strloc=0x7f001c7ebe6c "red_channel.c:1967", function=0x7f001c7ebf50 <__FUNCTION__.22670> "red_client_destroy",
    format=0x7f001c7e805e "assertion `%s' failed", args=args@entry=0x7fff5fe95db8) at log.c:109
#3  0x00007f001c772428 in spice_log (log_domain=log_domain@entry=0x7f001c7e8086 "Spice",
    log_level=log_level@entry=SPICE_LOG_LEVEL_ERROR, strloc=strloc@entry=0x7f001c7ebe6c "red_channel.c:1967",
    function=function@entry=0x7f001c7ebf50 <__FUNCTION__.22670> "red_client_destroy",
    format=format@entry=0x7f001c7e805e "assertion `%s' failed") at log.c:123
#4  0x00007f001c72f17a in red_client_destroy (client=client@entry=0x7f0023a01490) at red_channel.c:1967
#5  0x00007f001c755255 in reds_client_disconnect (client=0x7f0023a01490) at reds.c:570
#6  0x00007f001c72a441 in red_peer_handle_incoming (handler=0x7f0023ab40e0, stream=0x7f0023a2e9d0) at red_channel.c:300
#7  red_channel_client_receive (rcc=rcc@entry=0x7f0023aaffd0) at red_channel.c:309
#8  0x00007f001c72c2dc in red_channel_client_event (fd=<optimized out>, event=1, data=0x7f0023aaffd0) at red_channel.c:1440
#9  0x00007f00228ce787 in qemu_iohandler_poll (readfds=readfds@entry=0x7f002325f4e0 <rfds>,
    writefds=writefds@entry=0x7f002325f460 <wfds>, xfds=xfds@entry=0x7f002325f3e0 <xfds>, ret=ret@entry=8) at iohandler.c:159
#10 0x00007f00228d3cde in main_loop_wait (nonblocking=<optimized out>) at main-loop.c:417
#11 0x00007f00227aea55 in main_loop () at vl.c:2001
#12 main (argc=<optimized out>, argv=<optimized out>, envp=<optimized out>) at vl.c:4326

#5 corresponds to 'spice_assert(ring_is_empty(&rcc->pipe));'

Comment 1 Alon Levy 2013-06-10 15:36:15 UTC
I saw this already, it's reported I think, maybe similar to something Yonit is working. There is a double free, caused by client destroy happening twice. I don't think I'll get back to it this week so feel free to bug me if I can help you tackle this.

Comment 2 Christophe Fergeau 2013-06-10 15:49:08 UTC
I'm not sure this is a double free here,the structures seem consistent, but rcc->pipe contains one item (type 110, the channel seems to be a display channel, which would correspond to a PIPE_ITEM_TYPE_UPGRADE item (?))

Comment 3 Hans de Goede 2013-08-06 10:26:52 UTC
Could this be fixed by the ring remove safeness fixes done recently ?

Comment 4 Fedora Admin XMLRPC Client 2014-03-17 09:26:13 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 5 Fedora End Of Life 2015-01-09 18:22:55 UTC
This message is a notice that Fedora 19 is now at end of life. Fedora 
has stopped maintaining and issuing updates for Fedora 19. It is 
Fedora's policy to close all bug reports from releases that are no 
longer maintained. Approximately 4 (four) weeks from now this bug will
be closed as EOL if it remains open with a Fedora 'version' of '19'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 19 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 6 Fedora End Of Life 2015-02-17 15:31:26 UTC
Fedora 19 changed to end-of-life (EOL) status on 2015-01-06. Fedora 19 is
no longer maintained, which means that it will not receive any further
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of
Fedora please feel free to reopen this bug against that version. If you
are unable to reopen this bug, please file a new report against the
current release. If you experience problems, please add a comment to this
bug.

Thank you for reporting this bug and we are sorry it could not be fixed.