Bug 879360 - Libvirt leaks libvirt_lxc processes on container shutdown
Libvirt leaks libvirt_lxc processes on container shutdown
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libvirt (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: rc
: ---
Assigned To: Daniel Berrange
Virtualization Bugs
: Regression
Depends On:
Blocks: 881827
  Show dependency treegraph
Reported: 2012-11-22 11:53 EST by Daniel Berrange
Modified: 2013-02-21 02:27 EST (History)
9 users (show)

See Also:
Fixed In Version: libvirt-0.10.2-10.el6
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2013-02-21 02:27:35 EST
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Daniel Berrange 2012-11-22 11:53:01 EST
Description of problem:
When the container shuts down gracefully, the libvirt_lxc process does not quit. This wastes system resources

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

How reproducible:

Steps to Reproduce:
1. virsh start mycontainer
2. virsh console mycontainer
3. Type 'exit' inside the container shell
4. ps axuwf | grep libvirt_lxc
Actual results:
libvirt_lxc process still exists

Expected results:
No libvirt_lxc process exists

Additional info:
Comment 1 Daniel Berrange 2012-11-22 11:53:46 EST
Fix available upstream

Comment 4 Peter Krempa 2012-11-23 06:01:07 EST
Fixed upstream:
commit 37db3f5dfe713b978732a9b84982892da857813a
Author: Daniel P. Berrange <berrange@redhat.com>
Date:   Thu Nov 22 16:45:39 2012 +0000

    Fix exiting of libvirt_lxc program on container quit
    The virLXCControllerClientCloseHook method was mistakenly
    assuming that the private data associated with the network
    client was the virLXCControllerPtr. In fact it was just a
    dummy int, so we were derefencing a bogus struct. The
    frequent result of this was that we would never quit, because
    we tried to arm a non-existant timer.
    Fix the code by removing the dummy private data and just
    using the virLXCControllerPtr instance as private data
    Signed-off-by: Daniel P. Berrange <berrange@redhat.com>

and backported downstream:
Comment 6 yanbing du 2012-11-27 05:25:56 EST
Verify this bug with libvirt-0.10.2-10.el6

# virsh -c lxc:///

virsh # start toy
Domain toy started

virsh # list 
 Id    Name                           State
 9842  toy                            running

virsh # console toy
Connected to domain toy
Escape character is ^]
sh-4.1# exit

virsh # quit

#  ps axuwf | grep libvirt_lxc
root      9858  0.0  0.0 103244   816 pts/0    S+   18:19   0:00          \_ grep libvirt_lxc

There's no libvirt_lxc process exists.
Comment 7 errata-xmlrpc 2013-02-21 02:27:35 EST
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.


Note You need to log in before you can comment on or make changes to this bug.