Bug 1197600
Summary: | libvirt should remove the pid file of vm after vm offline if we restart libvirtd after start the vm | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Luyao Huang <lhuang> |
Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | low | Docs Contact: | |
Priority: | low | ||
Version: | 7.1 | CC: | dyuan, mprivozn, mzhan, rbalakri, zhwang |
Target Milestone: | rc | Keywords: | Upstream |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libvirt-1.2.14-1.el7 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-11-19 06:18:38 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
Luyao Huang
2015-03-02 07:56:19 UTC
Patch proposed upstream: https://www.redhat.com/archives/libvir-list/2015-March/msg00047.html And moving to POST: commit 63889e0c775010d8d70b71d25340bab995aa83ce Author: Michal Privoznik <mprivozn> AuthorDate: Tue Mar 3 11:51:19 2015 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Tue Mar 3 12:10:15 2015 +0100 qemuProcessReconnect: Fill in pid file path https://bugzilla.redhat.com/show_bug.cgi?id=1197600 So, libvirt uses pid file to track pid of started qemus. Whenever a domain is started, its pid is put into corresponding pid file. The pid file path is generated based on domain name and stored into domain object internals. However, it's not stored in the status XML and therefore lost on daemon restarts. Hence, later, when domain is being shut down, the daemon does not know which pid file to unlink, and the correct pid file is left behind. To avoid this, lets generate the pid file path again in qemuProcessReconnect(). Reported-by: Luyao Huang <lhuang> Signed-off-by: Michal Privoznik <mprivozn> v1.2.13-39-g63889e0 I can produce this bug with build libvirt-1.2.8-16.el7.x86_64 Verify this with build libvirt-1.2.16-1.el7.x86_64 1. prepare a healthy guest, start it # virsh list Id Name State ---------------------------------------------------- 10 vm1 running # cat /var/run/libvirt/qemu/vm1.pid 26848 2. restart libvirtd, and check guest pid exist # service libvirtd restart Redirecting to /bin/systemctl restart libvirtd.service # cat /var/run/libvirt/qemu/vm1.pid 26848 3. destroy guest, check pid disappeared # virsh destroy vm1 Domain vm1 destroyed # cat /var/run/libvirt/qemu/vm1.pid cat: /var/run/libvirt/qemu/vm1.pid: No such file or directory 4. shutdown and managedsave guest to shutoff status, pid all removed automatically move 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. https://rhn.redhat.com/errata/RHBA-2015-2202.html |