Bug 903282

Summary: libvirtd from git segfaults on shutdown in _dbus_warn_check_failed
Product: Red Hat Enterprise Linux 6 Reporter: Eric Blake <eblake>
Component: libvirtAssignee: Eric Blake <eblake>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.4CC: acathrow, berrange, bili, clalancette, cwei, dallan, dyuan, eblake, itamar, jforbes, laine, libvirt-maint, mzhan, rjones, veillard, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 903184 Environment:
Last Closed: 2014-04-04 22:56:10 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:
Bug Depends On: 903184    
Bug Blocks:    

Description Eric Blake 2013-01-23 16:09:51 UTC
Cloning to RHEL

+++ This bug was initially created as a clone of Bug #903184 +++

Description of problem:

libvirt compiled from git (55bfd020d8d9de40977832c4762728090df2bee3).

Run the daemon like this:

$ ./run gdb --args ./daemon/libvirtd --timeout 30

Run libguestfs-test-tool against this daemon so that a single
transient guest is created and destroyed.

Wait 30 seconds for libvirtd to timeout and exit.

(gdb) bt
#0  0x000000328c635ba5 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:63
#1  0x000000328c637358 in __GI_abort () at abort.c:90
#2  0x0000003291e30ab5 in _dbus_abort () at dbus-sysdeps.c:94
#3  0x0000003291e27545 in _dbus_warn_check_failed (
    format=0x3291e325b8 "Attempt to remove filter function %p user data %p, but no such filter has been added\n") at dbus-internals.c:290
#4  0x00007fffea28c710 in nwfilterDriverShutdown ()
    at nwfilter/nwfilter_driver.c:344
#5  0x00007ffff777e89f in virStateCleanup () at libvirt.c:846
#6  0x000000000040c823 in main (argc=<optimized out>, argv=<optimized out>)
    at libvirtd.c:1517


Version-Release number of selected component (if applicable):

libvirt from git (55bfd020d8d9de40977832c4762728090df2bee3)

How reproducible:

Happened 3 times for me.

--- Additional comment from Daniel Berrange on 2013-01-23 05:20:34 MST ---

Yep, I've just seen that problem too & am investigating it

--- Additional comment from Daniel Berrange on 2013-01-23 05:25:17 MST ---

Oh btw the problem likely exists in previous libvirt, but we were missing the virStateCleanup call for a few releases, which would have avoided triggering the problem

--- Additional comment from Daniel Berrange on 2013-01-23 07:20:57 MST ---

Fixed in GIT with

commit abbec81bd0c9bf917f2c63045222734d7e4411fb
Author: Daniel P. Berrange <berrange>
Date:   Wed Jan 16 13:12:16 2013 +0000

    Fix nwfilter driver reload/shutdown handling when unprivileged
    
    Although the nwfilter driver skips startup when running in a
    session libvirtd, it did not skip reload or shutdown. This
    caused errors to be reported when sending SIGHUP to libvirtd,
    and caused an abort() in libdbus on shutdown due to trying
    to remove a dbus filter that was never added

--- Additional comment from Eric Blake on 2013-01-23 08:32:11 MST ---

I'm backporting this to v0.10.2-maint, and leaving it in POST until F18 picks up the fix.

Comment 1 Eric Blake 2013-01-23 16:14:47 UTC
I've confirmed that the bug was introduced in v0.10.0 (commit f8ab364), and therefore RHEL 6.4 is vulnerable.  However, the bug is masked by the fact that we don't clean up properly, so I'm not sure how urgent it is to backport a fix.  The backport would consist of the following patches (already upstream, and also in upstream v0.10.2-maint):

aafe419 - drop dead code introduced in commit f8ab364
47e1767 - expose the latent problem
abbec81 - fix the actual bug

Comment 3 Eric Blake 2013-01-23 16:28:43 UTC
I can't see anything critical to clean up during virStateCleanup(), and without that patch, we don't crash; so I think this patch is not urgent, and best picked up in 6.5.  Since we will rebase for 6.5, I'm moving this to post.

Comment 5 Eric Blake 2013-06-05 22:39:01 UTC
http://post-office.corp.redhat.com/archives/rhvirt-patches/2013-June/msg00027.html if backporting rather than rebasing

Comment 10 RHEL Program Management 2014-04-04 22:56:10 UTC
Development Management has reviewed and declined this request.
You may appeal this decision by reopening this request.