Bug 1002427

Summary: libvirt should forbid hot-plug interface of inactive network with forward mode 'hostdev'
Product: Red Hat Enterprise Linux 6 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: 6.5CC: acathrow, dyuan, honzhang, jdenemar, xuzhang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1002438 (view as bug list) Environment:
Last Closed: 2014-04-04 09:19:24 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:    
Bug Blocks: 1002438    

Description Xuesong Zhang 2013-08-29 07:54:19 UTC
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 09:37:53 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 rhel
error: Failed to start domain rhel
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 rhel
Domain rhel started

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

Comment 3 Jiri Denemark 2013-09-02 09:58:16 UTC
Is this a regression from 6.4 or 6.3?

Comment 4 Xuesong Zhang 2013-09-03 02:07:34 UTC
It's not a regression.

Since the hostdev type network is new for rhel6.5.

The following link is for your reference:
http://libvirt.org/formatnetwork.html
Search the following content.
since 0.10.0 When using forward mode 'hostdev'

(In reply to Jiri Denemark from comment #3)
> Is this a regression from 6.4 or 6.3?

Comment 5 hongming 2013-09-03 04:02:22 UTC
(In reply to Zhang Xuesong from comment #4)
> It's not a regression.
> 
> Since the hostdev type network is new for rhel6.5.

It isn't new feature for rhel6.5. The libvirt in rhel6.4 already has it , but we did't cover it in rhel6.4 test plan.  

> The following link is for your reference:
> http://libvirt.org/formatnetwork.html
> Search the following content.
> since 0.10.0 When using forward mode 'hostdev'
> 
> (In reply to Jiri Denemark from comment #3)
> > Is this a regression from 6.4 or 6.3?

Comment 8 Laine Stump 2014-04-04 09:19:24 UTC

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