Bug 1518148
| Summary: | Fail to attach interface after libvirtd restart | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Jingjing Shao <jishao> | ||||
| Component: | libvirt | Assignee: | Ján Tomko <jtomko> | ||||
| Status: | CLOSED ERRATA | QA Contact: | yalzhang <yalzhang> | ||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 7.5 | CC: | dyuan, jiyan, jtomko, lmiksik, rbalakri, xuzhang, yafu, yalzhang | ||||
| Target Milestone: | rc | Keywords: | Regression | ||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | libvirt-3.9.0-5.el7 | Doc Type: | If docs needed, set a value | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2018-04-10 11:00:58 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: | |||||||
| Attachments: |
|
||||||
Proposed upstream patch: https://www.redhat.com/archives/libvir-list/2017-November/msg01139.html Pushed upstream as:
commit 309cd46b400d80420615b19adfebf7158492ae3b
Introduce virDomainDeviceAliasIsUserAlias
commit dacfc6b10bcff1c275d21a37edf0bc83e0947492
qemu: prefer the PCI bus alias from status XML
commit fdf354fb51e7f00b582d0daa18961d432155df83
virQEMUCapsHasPCIMultiBus: use def->os.arch
commit 65108d94d093de082dc5a2d4a73844dd569506db
CommitDate: 2017-11-30 16:49:05 +0100
virQEMUCapsHasPCIMultiBus: assume true if we have no version information
git describe: v3.10.0-rc1-9-g65108d94d
Hi Ján Tomko, I have test the scratch build with latest qemu-kvm-rhev-2.10.0-10.el7.x86_64 on a new created vm, it works well. But on one other vm, the hotplug always fail, coldplug is ok. I tried to find the difference between the 2 vm's xml, but can not find any clue. Then I tried on another host with the problematic xml, it still fail with the scratch build.The error message says: # virsh attach-interface rhel7.4 network default error: Failed to attach interface error: internal error: unable to execute QEMU command 'device_add': Bus 'pci.0' does not support hotplugging And I attached the problematic xml, could you please help to debug? Created attachment 1361609 [details]
Problematic vm xml
Problematic vm xml
ACPI needs to be enabled for PCI hotplug: (I'm not sure if it can work through SHPC without ACPI) <features> <acpi/> </features> Same issue for virtio input device https://bugzilla.redhat.com/show_bug.cgi?id=1509866#c11 Test on libvirt-3.9.0-7.el7.x86_64, the bug is fixed. Set it as verified.
1.
# virsh dumpxml rhel | grep /interface -B9
# systemctl restart libvirtd
# virsh attach-interface rhel network default --model virtio --mac 52:54:00:8f:c2:f1
Interface attached successfully
# virsh dumpxml rhel | grep /interface -B7
<interface type='network'>
<mac address='52:54:00:8f:c2:f1'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
2. restart libvirtd, then attach device with alias name
# systemctl restart libvirtd
# cat inter.xml
<interface type='network'>
<source network='default' bridge='virbr0'/>
<model type='virtio'/>
<alias name='ua-myinterface'/>
</interface>
# virsh attach-device rhel inter.xml
Device attached successfully
# virsh dumpxml rhel | grep /interface -B7
<interface type='network'>
<mac address='52:54:00:8f:c2:f1'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet0'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='network'>
<mac address='52:54:00:2b:bb:d4'/>
<source network='default' bridge='virbr0'/>
<target dev='vnet1'/>
<model type='virtio'/>
<alias name='ua-myinterface'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</interface>
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://access.redhat.com/errata/RHEA-2018:0704 |
Description of problem: Fail to attach interface after libvirtd restart Version-Release number of selected component (if applicable): libvirt-3.9.0-3.virtcov.el7.x86_64 How reproducible: 100% Steps to reproduce: 1. Prepare a running guest with info as below # virsh dumpxml rhel | grep /interface -B7 <interface type='network'> <mac address='52:54:00:c2:66:40'/> <source network='default' bridge='virbr0'/> <target dev='vnet0'/> <model type='rtl8139'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> 2.Restart the libvirtd # service libvirtd restart Redirecting to /bin/systemctl restart libvirtd.service 3. Attach the interface # virsh attach-interface rhel network default error: Failed to attach interface error: internal error: unable to execute QEMU command 'device_add': Bus 'pci' not found Actual results: As the step3 shows Expected results: Interface attached successfully Addtional info: Test on libvirt-3.9.0-2.el7.x86_64 no such issue