| Summary: | Libvirt connections leak File Descriptors in v0.9.3 | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Dave Allan <dallan> |
| Component: | libvirt | Assignee: | Eric Blake <eblake> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | high | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 6.2 | CC: | ajia, crobinso, dyuan, gren, jyang, mzhan, neil, rwu, vbian, xen-maint |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-0.9.4-11.el6 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | 722648 | Environment: | |
| Last Closed: | 2011-12-06 11:26:59 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Bug Depends On: | 722648 | ||
| Bug Blocks: | |||
|
Description
Dave Allan
2011-08-16 19:25:12 UTC
I have confirmed that this bug is not present in libvirt-0.9.4-11.el6. While it probably did exist in 0.9.3, we have had a lot of RPC fixes in the meantime, such that this does not affect RHEL. Given the comments that this appeared to be fixed as soon as libvirt-0.9.3-5.el6, I'm assuming that this commit may have been the one that made the difference:
commit 155cfcf5a39ea186312725acc416e0065b65c56f
Author: Daniel P. Berrange <berrange>
Date: Fri Jul 8 12:54:29 2011 +0100
Fix sending of reply to final RPC message
The dispatch for the CLOSE RPC call was invoking the method
virNetServerClientClose(). This caused the client connection
to be immediately terminated. This meant the reply to the
final RPC message was never sent. Prior to the RPC rewrite
we merely flagged the connection for closing, and actually
closed it when the next RPC call dispatch had completed.
tested with libvirt-0.9.4-12.el6.x86_64 Steps: [terminal 1] # service libvirtd stop # python >>> import libvirt >>> con=libvirt.open('') >>> con.close() 0 >>> con=libvirt.open('') [terminal 2] root@dhcp-93-106 ~]# ll /proc/$(pidof libvirtd)/fd total 0 lrwx------. 1 root root 64 Sep 22 09:22 0 -> /dev/null lrwx------. 1 root root 64 Sep 22 09:22 1 -> /dev/null lr-x------. 1 root root 64 Sep 22 09:21 10 -> socket:[21308] lrwx------. 1 root root 64 Sep 22 09:22 11 -> socket:[21310] lrwx------. 1 root root 64 Sep 22 09:22 12 -> socket:[21312] lrwx------. 1 root root 64 Sep 22 09:22 13 -> socket:[21317] l-wx------. 1 root root 64 Sep 22 09:22 14 -> /proc/mtrr lrwx------. 1 root root 64 Sep 22 09:22 15 -> /sys/devices/pci0000:00/0000:00:1e.0/0000:03:00.0/config lrwx------. 1 root root 64 Sep 22 09:22 16 -> socket:[21451] lrwx------. 1 root root 64 Sep 22 09:22 17 -> socket:[21791] lrwx------. 1 root root 64 Sep 22 09:22 18 -> socket:[21792] lrwx------. 1 root root 64 Sep 22 09:22 19 -> socket:[21793] lrwx------. 1 root root 64 Sep 22 09:22 2 -> /dev/null lr-x------. 1 root root 64 Sep 22 09:22 3 -> /dev/urandom lrwx------. 1 root root 64 Sep 22 09:22 4 -> socket:[21304] lr-x------. 1 root root 64 Sep 22 09:22 5 -> pipe:[21305] l-wx------. 1 root root 64 Sep 22 09:22 6 -> pipe:[21305] lr-x------. 1 root root 64 Sep 22 09:22 7 -> pipe:[21306] l-wx------. 1 root root 64 Sep 22 09:22 8 -> pipe:[21306] lrwx------. 1 root root 64 Sep 22 09:22 9 -> socket:[21307] 10 socket files , and 4 pipe files [root@dhcp-93-106 ~]# ll /proc/$(pidof libvirtd)/fd total 0 lrwx------. 1 root root 64 Sep 22 09:22 0 -> /dev/null lrwx------. 1 root root 64 Sep 22 09:22 1 -> /dev/null lr-x------. 1 root root 64 Sep 22 09:21 10 -> socket:[21308] lrwx------. 1 root root 64 Sep 22 09:22 11 -> socket:[21310] lrwx------. 1 root root 64 Sep 22 09:22 12 -> socket:[21312] lrwx------. 1 root root 64 Sep 22 09:22 13 -> socket:[21317] l-wx------. 1 root root 64 Sep 22 09:22 14 -> /proc/mtrr lrwx------. 1 root root 64 Sep 22 09:22 15 -> /sys/devices/pci0000:00/0000:00:1e.0/0000:03:00.0/config lrwx------. 1 root root 64 Sep 22 09:22 16 -> socket:[21451] lrwx------. 1 root root 64 Sep 22 09:22 2 -> /dev/null lr-x------. 1 root root 64 Sep 22 09:22 3 -> /dev/urandom lrwx------. 1 root root 64 Sep 22 09:22 4 -> socket:[21304] lr-x------. 1 root root 64 Sep 22 09:22 5 -> pipe:[21305] l-wx------. 1 root root 64 Sep 22 09:22 6 -> pipe:[21305] lr-x------. 1 root root 64 Sep 22 09:22 7 -> pipe:[21306] l-wx------. 1 root root 64 Sep 22 09:22 8 -> pipe:[21306] lrwx------. 1 root root 64 Sep 22 09:22 9 -> socket:[21307] 7 socket files , and 4 pipe files [root@dhcp-93-106 ~]# ll /proc/$(pidof libvirtd)/fd total 0 lrwx------. 1 root root 64 Sep 22 09:22 0 -> /dev/null lrwx------. 1 root root 64 Sep 22 09:22 1 -> /dev/null lr-x------. 1 root root 64 Sep 22 09:21 10 -> socket:[21308] lrwx------. 1 root root 64 Sep 22 09:22 11 -> socket:[21310] lrwx------. 1 root root 64 Sep 22 09:22 12 -> socket:[21312] lrwx------. 1 root root 64 Sep 22 09:22 13 -> socket:[21317] l-wx------. 1 root root 64 Sep 22 09:22 14 -> /proc/mtrr lrwx------. 1 root root 64 Sep 22 09:22 15 -> /sys/devices/pci0000:00/0000:00:1e.0/0000:03:00.0/config lrwx------. 1 root root 64 Sep 22 09:22 16 -> socket:[21451] lrwx------. 1 root root 64 Sep 22 09:22 17 -> socket:[22138] lrwx------. 1 root root 64 Sep 22 09:22 18 -> socket:[22139] lrwx------. 1 root root 64 Sep 22 09:22 19 -> socket:[22140] lrwx------. 1 root root 64 Sep 22 09:22 2 -> /dev/null lr-x------. 1 root root 64 Sep 22 09:22 3 -> /dev/urandom lrwx------. 1 root root 64 Sep 22 09:22 4 -> socket:[21304] lr-x------. 1 root root 64 Sep 22 09:22 5 -> pipe:[21305] l-wx------. 1 root root 64 Sep 22 09:22 6 -> pipe:[21305] lr-x------. 1 root root 64 Sep 22 09:22 7 -> pipe:[21306] l-wx------. 1 root root 64 Sep 22 09:22 8 -> pipe:[21306] lrwx------. 1 root root 64 Sep 22 09:22 9 -> socket:[21307] [root@dhcp-93-106 ~]# rpm -q libvirt qemu-kvm kernel 10 socket files and 4 pipe files, the old socket files are reused . So set bug status to VERIFIED 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. http://rhn.redhat.com/errata/RHBA-2011-1513.html |