I tried to add one of my device to a new domain, but the handling libvirt thread crashed. I did it wrongly, but segfault in libvirt is not expected. The tried device: 02:00.0 Network controller: Mellanox Technologies MT25408A0-FCC-QI ConnectX, Dual Port 40Gb/s InfiniBand / 10GigE Adapter IC with PCIe 2.0 x8 5.0GT/s In... (rev b0) Kernel: 4.20.16-200.fc29.x86_64 CPU: Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz Chipset: Z77 (old) iommu enabled. interface_xml: <interface type='hostdev' managed='yes'> <source> <address type='pci' domain='0x0' bus='0x02' slot='0x00' function='0x0'/> </source> <mac address='52:54:00:6d:90:02'/> <virtualport type='802.1Qbh'> <parameters profileid='finance'/> </virtualport> </interface> Version-Release number of selected component (if applicable): libvirt-4.7.0-1.fc29.x86_64 How reproducible: always Actual results: virsh -c qemu:///system create ./domxml_mlx error: Disconnected from qemu:///system due to keepalive timeout error: Failed to create domain from ./domxml_mlx error: internal error: connection closed due to keepalive timeout #0 0x00007f966aad4cfa in __strlen_sse2 () from /lib64/libc.so.6 #1 0x00007f966b461b90 in virStrncpy () from /lib64/libvirt.so.0 #2 0x00007f966b42c9fb in virNetDevGetIndex () from /lib64/libvirt.so.0 #3 0x00007f966b43c16d in ?? () from /lib64/libvirt.so.0 #4 0x00007f966b43d265 in virNetDevVPortProfileAssociate () from /lib64/libvirt.so.0 #5 0x00007f966b418e53 in ?? () from /lib64/libvirt.so.0 #6 0x00007f966b419d51 in virHostdevPreparePCIDevices () from /lib64/libvirt.so.0 #7 0x00007f96524f2c02 in qemuHostdevPrepareDomainDevices () from /usr/lib64/libvirt/connection-driver/libvirt_driver_qemu.so #8 0x00007f965250d665 in qemuProcessPrepareHost () from /usr/lib64/libvirt/connection-driver/libvirt_driver_qemu.so #9 0x00007f9652513c2f in qemuProcessStart () from /usr/lib64/libvirt/connection-driver/libvirt_driver_qemu.so #10 0x00007f9652563dcf in ?? () from /usr/lib64/libvirt/connection-driver/libvirt_driver_qemu.so #11 0x00007f966b60fdaa in virDomainCreateXML () from /lib64/libvirt.so.0 #12 0x000055ab33505082 in remoteDispatchDomainCreateXML (server=0x55ab34c75aa0, msg=0x55ab34cea060, args=0x7f9654000b60, args=0x7f9654000b60, ret=0x7f9654000b80, rerr=0x7f965c255960, client=0x55ab34ce9c70) at remote/remote_daemon_dispatch_stubs.h:4575 #13 remoteDispatchDomainCreateXMLHelper (server=0x55ab34c75aa0, client=0x55ab34ce9c70, msg=0x55ab34cea060, rerr=0x7f965c255960, args=0x7f9654000b60, ret=0x7f9654000b80) at remote/remote_daemon_dispatch_stubs.h:4553 #14 0x00007f966b533cc4 in virNetServerProgramDispatch () from /lib64/libvirt.so.0 #15 0x00007f966b53a1cc in ?? () from /lib64/libvirt.so.0 #16 0x00007f966b469b70 in ?? () from /lib64/libvirt.so.0 #17 0x00007f966b468e7c in ?? () from /lib64/libvirt.so.0 #18 0x00007f966ac4858e in start_thread () from /lib64/libpthread.so.0 #19 0x00007f966ab376a3 in clone () from /lib64/libc.so.6 The daemon stays alive, just one thread got SIGSEGV/11. Expected results: No segfault in libvirt. Refuse to start in a proper way, No way to use the given interface definition with this pci address/device. Additional info: I did not made any attempt to have the system to not use the device. F29 today stable version.
Thanks for the report. Can you see if this also reproduces with newer libvirt from virt-preview repo? https://fedoraproject.org/wiki/Virtualization_Preview_Repository
I can't reproduce because it requires sr-iov hardware. Since there's been no response for a month, I'm closing this. If you can still reproduce, please reopen and check: - if virt-preview repo fixes it, this is a useful piece of data - reproduce the crash after full dnf debuginfo-install libvirt-daemon\* to get a complete backtrace
I have access to few machines with SR-IOV HW and I was able to reproduce it and figure out the issue. It is already fixed in upstream since libvirt 5.1.0: commit 04983c3c6a821f67994b1c65d4d6175f3ac49d69 Author: Radoslaw Biernacki <radoslaw.biernacki> Date: Tue Jan 22 12:26:15 2019 -0700 util: Fixing invalid error checking from virPCIGetNetname() In Fedora 30 and virt-preview it should be fixed.
Thanks Pavel. Reopening and setting to POST
FEDORA-2019-9210998aaa has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-9210998aaa
libvirt-4.7.0-5.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-9210998aaa
libvirt-4.7.0-5.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.