Bug 1002438

Summary: libvirt should forbid hot-plug interface of inactive network with forward mode 'hostdev'
Product: Red Hat Enterprise Linux 7 Reporter: Xuesong Zhang <xuzhang>
Component: libvirtAssignee: Laine Stump <laine>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, dyuan, honzhang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1002427 Environment:
Last Closed: 2014-04-10 11:42:48 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: 880483, 1002427    
Bug Blocks:    

Description Xuesong Zhang 2013-08-29 08:15:01 UTC
Clone bug 1002427 to rhel7, since the issue also appear in rhel7.

libvirt-1.1.1-2.el7.x86_64

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

Description of problem:
libvirt should forbid hot-plug interface of inactive network with forward mode 'hostdev'.

Version-Release number of selected component (if applicable):
libvirt-0.10.2-23.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. prepare one hostdev network like the following one.
# virsh net-dumpxml hostdev-net1
<network>
  <name>hostdev-net1</name>
  <uuid>a57d0acb-3182-28ad-5c47-aae471ca8084</uuid>
  <forward mode='hostdev' managed='yes'>
    <address type='pci' domain='0x0000' bus='0x11' slot='0x10' function='0x0'/>
    <address type='pci' domain='0x0000' bus='0x11' slot='0x10' function='0x1'/>
  </forward>
</network>

2. make sure the network are all in inactive status.
# virsh net-list --all
Name                 State      Autostart     Persistent
--------------------------------------------------
default              inactive   no            yes
hostdev-net1         inactive   no            yes

3. prepare one running guest.
# virsh start r6
Domain r6 started

4. hot-plug the interface in hostdev network.
# virsh attach-device r6 vfpool.xml 
Device attached successfully

5. hot-plug the interface in default pool.
# virsh attach-device r6 default-pool-NIC.xml 
error: Failed to attach device from default-pool-NIC.xml
error: internal error Network 'default' is not active.


Actual result:
In step4, hot-plug the interface of inactive hostdev network will be successfully.

Expected result:
In step4, libvirt should forbid to hot-plug the interface of inactive network, such as the step 5.

Comment 2 Xuesong Zhang 2013-08-29 08:29:20 UTC
This issue also appear while cold-plug.

1. prepare the following 2 xml.
#cat defalut-NIC.xml
<interface type='network'>
      <source network='default'/>
</interface>
#cat hostdev-NIC.xml
<interface type='network'>
      <source network='hostdev-net1'/>
</interface>

2. make sure both the default and hostdev network are inactive.
# virsh net-list --all
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              inactive   yes           yes
 hostdev-net1         inactive   no            yes

3. cold-plug the defalut-NIC.xml to the shutoff guest, then start the guest.
# virsh start rhel7raw
error: Failed to start domain rhel7raw
error: internal error: Network 'default' is not active.

4. remove the default-NIC.xml from guest xml, and cold-plug the defalut-NIC.xml to the shutoff guest, then start the guest.
# virsh start rhel7raw
Domain rhel7raw started

Expected result:
In step4, the guest should forbid to start the guest and report error like step3.

Comment 4 Laine Stump 2014-04-10 11:42:48 UTC

*** This bug has been marked as a duplicate of bug 880483 ***