Bug 728428

Summary: hotplug disk/device and then restart libvirtd, the disk/device will be attached permanently
Product: Red Hat Enterprise Linux 6 Reporter: weizhang <weizhan>
Component: libvirtAssignee: Osier Yang <jyang>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: dallan, dyuan, mzhan, rwu, veillard, ydu
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.9.4-13.el6 Doc Type: Bug Fix
Doc Text:
Cause libvirt reloads the domain configuration from status XML (e.g. /var/run/libvirt/qemu/$domain.xml) if the status XML exists (means the domain is running) when restarting. However, it doesn't record the original domain configuration in this situation. Consequence it's not able to restore the domain configuration to the original one when destroying and shutdown. The user will see the not persistent attached devices still exists after restarting libvirtd. Fix Record the original domain configuration by assigning persistent domain configuration to dom->newDef if it's NULL and the domain is running. Result The not persistent attached device will not exist after libvirtd is restarted, which is the correct logic.
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-06 11:23:38 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description weizhang 2011-08-05 05:50:37 UTC
Description of problem:
hotplug disk/device and then restart libvirtd, the disk/device will be attached permanently

Version-Release number of selected component (if applicable):
libvirt-0.9.4-1.el6.x86_64
qemu-kvm-0.12.1.2-2.176.el6.x86_64
kernel-2.6.32-177.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. start a guest
2. prepare a disk for hotplug
3. virsh attach-disk guest /var/lib/libvirt/images/tt.img vda
4. service libvirtd restart
5. destroy the guest and start it again
  
Actual results:
the hot-plugged disk still exist

Expected results:
the hot-plugged disk should be removed

Additional info:

Comment 3 Osier Yang 2011-09-07 11:51:07 UTC
https://www.redhat.com/archives/libvir-list/2011-September/msg00071.html

Patch posted to upstream.

Comment 4 Osier Yang 2011-09-22 00:44:42 UTC
patch committed to upstream

Comment 5 Osier Yang 2011-09-22 05:12:04 UTC
patch posted internally, move to POST.

Comment 9 yanbing du 2011-09-26 09:09:24 UTC
Test with libvirt-0.9.4-13.el6.x86_64, after restart the guest, the hot-plugged disk disappeared.
Move to VERIFIED.

Comment 10 Osier Yang 2011-11-14 08:55:26 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
Cause
    libvirt reloads the domain configuration from status XML (e.g. /var/run/libvirt/qemu/$domain.xml) if the status XML exists (means the domain is running) when restarting. However, it doesn't record the original domain configuration in
this situation.

Consequence
     it's not able to restore the domain configuration to the original one when destroying and shutdown. The user will see
the not persistent attached devices still exists after restarting
libvirtd.  

Fix
   Record the original domain configuration by assigning persistent domain configuration to dom->newDef if it's NULL and the domain is running.

Result
   The not persistent attached device will not exist after libvirtd is restarted, which is the correct logic.

Comment 11 errata-xmlrpc 2011-12-06 11:23:38 UTC
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