Hello All,
I have recently found a bug in my patches to support forward mode="hostdev".
The bug is that libvirtd restart forgets about the netdef->forwardIfs.
Steps to reproduce:
1) virsh net-define hostdev.xml
<network>
<name>hostdev</name>
<uuid>81ff0d90-c91e-6742-64da-4a736edb9a8f</uuid>
<forward mode='hostdev' managed='yes'>
<pf dev='eth4'/>
</forward>
</network>
2) virsh define guest.xml
3) virsh start guest
[root@c6100m libvirt]# virsh net-dumpxml hostdev
<network>
<name>hostdev</name>
<uuid>81ff0d90-c91e-6742-64da-4a736edb9a8f</uuid>
<forward managed='yes' mode='hostdev'>
<pf dev='eth4'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x00' function='0x2'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x00' function='0x4'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x00' function='0x6'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x01' function='0x0'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x01' function='0x2'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x01' function='0x4'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x01' function='0x6'/>
<address type='pci' domain='0x0000' bus='0x04'
slot='0x02' function='0x0'/>
</forward>
</network>
4) service libvirtd restart
After libvirtd is restarted I observe that the guest is shutdown.
/var/log/libvirt/libvirtd.log complains with the following error message:
networkNotifyActualDevice:3299 : internal error network 'hostdev' doesn't have
dev in use by domain.
Using gdb when I breakpoint on networkNotifyActualDevice on libvirtd start I observe that
netdef->nForwardIfs has been reset to 0, but netdef->nForwardPfs is correctly
assigned to 1.
So my question is does libvirtd restart cause the network to remember only the inactive
XML and not the active XML?
Does anyone have any ideas on how I should proceed on this bug?
--
Many Thanks,
Regards,
Shradha Shah