Bug 1128751
Summary: | <driver/> isn't always formated as it should be | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Michael Burman <mburman> | ||||
Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> | ||||
Status: | CLOSED ERRATA | QA Contact: | Michael Burman <mburman> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | unspecified | ||||||
Version: | 7.0 | CC: | bmcclain, danken, dyuan, honzhang, jherrman, jiahu, jkurik, mpavlik, mprivozn, myakove, rbalakri, snagar, sowang | ||||
Target Milestone: | rc | Keywords: | Upstream, ZStream | ||||
Target Release: | --- | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | network | ||||||
Fixed In Version: | libvirt-1.2.8-1.el7 | Doc Type: | Bug Fix | ||||
Doc Text: |
Due to a bug in the underlying code, each attribute of the [driver/] element of the libvirt [interface/] setting was incorrectly formatted with its own [driver/] element. As a consequence, only the first [driver/] element and its attribute were parsed back, and the following [driver/] elements and their attributes were ignored. This could lead to a number of features not working correctly. With this update, the [driver/] is formatted only once with all the attributes, and is therefore parsed as intended. As a result, the described problem no longer occurs.
|
Story Points: | --- | ||||
Clone Of: | |||||||
: | 1183447 (view as bug list) | Environment: | |||||
Last Closed: | 2015-03-05 07:42:14 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: | 1164308, 1164311, 1183447 | ||||||
Attachments: |
|
Description
Michael Burman
2014-08-11 13:16:04 UTC
Patch proposed upstream: https://www.redhat.com/archives/libvir-list/2014-August/msg00462.html I've just pushed the patch upstream: commit 3085702b5461d3b0b057c37cf5fbff432244f529 Author: Michal Privoznik <mprivozn> AuthorDate: Mon Aug 11 14:51:49 2014 +0200 Commit: Michal Privoznik <mprivozn> CommitDate: Tue Aug 12 09:29:10 2014 +0200 conf: Format interface's driver more frequently https://bugzilla.redhat.com/show_bug.cgi?id=1128751 There's this <driver/> element under <interface/> which can have several attributes. However, the driver element is currently formated only if the driver's name or txmode has been specified. This makes only a little sense as we parse even partial <driver/>, for instance: <interface type='user'> <mac address='52:54:00:e5:48:58'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> </interface> But such XML would never get formatted back. Signed-off-by: Michal Privoznik <mprivozn> Moving to POST: http://post-office.corp.redhat.com/archives/rhvirt-patches/2014-August/msg00274.html Verified on - 3.5.0-0.13.beta.el6ev with libvirt-1.2.8-4.el7.x86_64 *** Bug 1176148 has been marked as a duplicate of this bug. *** Can this be cloned to 7.0.z, as a RHEV-3.5 feature depends on it? (In reply to Dan Kenigsberg from comment #7) > Can this be cloned to 7.0.z, as a RHEV-3.5 feature depends on it? Sure it can. Although we need PM help here to clone it. Verify it as follows: Scene 1: 1.[root@localhost libvirt]# rpm -q libvirt libvirt-1.2.8-15.el7.x86_64 2.[root@localhost libvirt]# virsh list --all Id Name State ---------------------------------------------------- - aa shut off 3.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> 4.add" <driver ioeventfd='on' event_idx='on' queues='5'/>" to xml [root@localhost libvirt]# virsh edit aa Domain aa XML configuration edited. 5.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> 6.[root@localhost libvirt]# virsh start aa;virsh dumpxml aa |grep interface -A6 Domain aa started <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default' bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> <alias name='net0'/> -- </interface> [root@localhost libvirt]# ps aux |grep qemu qemu 7267 104 0.5 1914740 46172 ? Sl 14:34 0:07 /usr/libexec/qemu-kvm -name aa -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -m 1024 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 23d19d5a-ee01-4a2b-bec9-948fca512c00 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/aa.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on -device pci-bridge,chassis_nr=1,id=pci.1,bus=pci.0,addr=0x3 -device nec-usb-xhci,id=usb,bus=pci.0,addr=0x6 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x4 -drive file=/var/lib/libvirt/images/rhel7.0.qcow2,if=none,id=drive-ide0-0-0,format=qcow2,cache=none -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -netdev tap,fds=24:25:26:27:28,id=hostnet0,vhost=on,vhostfds=29:30:31:32:33 -device virtio-net-pci,ioeventfd=on,event_idx=on,mq=on,vectors=12,netdev=hostnet0,id=net0,mac=52:54:00:c9:7d:a5,bus=pci.0,addr=0x5 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vgamem_mb=8,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x7 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x9 -msg timestamp=on root 7288 0.0 0.0 112640 964 pts/0 S+ 14:34 0:00 grep --color=auto qemu 7.[root@localhost libvirt]# virsh destroy aa Domain aa destroyed 8.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <driver ioeventfd='on' event_idx='on' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> Scene 2: 1.add <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/> to xml [root@localhost libvirt]# virsh edit aa Domain aa XML configuration edited. 2.[root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default'/> <model type='virtio'/> <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </interface> 3. [root@localhost libvirt]# virsh start aa Domain aa started [root@localhost libvirt]# virsh dumpxml aa |grep interface -A6 <interface type='network'> <mac address='52:54:00:c9:7d:a5'/> <source network='default' bridge='virbr0'/> <target dev='vnet0'/> <model type='virtio'/> <driver name='vhost' txmode='iothread' ioeventfd='on' event_idx='off' queues='5'/> <alias name='net0'/> bug is fixed. 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://rhn.redhat.com/errata/RHSA-2015-0323.html The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days |