Bug 981261
| Summary: | It should report an error while add an invalid pci controller to the guest | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | zhenfeng wang <zhwang> |
| Component: | libvirt | Assignee: | Ján Tomko <jtomko> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.0 | CC: | acathrow, ajia, bili, dyuan, gsun, jmiao, jtomko, mzhan, xuzhang, ydu |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-1.1.1-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2014-06-13 12:17:11 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: | |||
Negative controller indexes are fixed upstream now:
commit 945b18eb7d449217de1a3ce349d31eb43c39cf3e
Author: Jincheng Miao <jmiao>
AuthorDate: 2013-07-12 14:17:23 +0200
Commit: Ján Tomko <jtomko>
CommitDate: 2013-07-12 14:55:04 +0200
Change domain controller index type to unsigned
Error out on negative index values.
https://bugzilla.redhat.com/show_bug.cgi?id=981261
git describe: v1.1.0-174-g945b18e
I've posted a patch rejecting pci-root controllers with non-zero indexes upstream:
https://www.redhat.com/archives/libvir-list/2013-July/msg00810.html
The second patch is now pushed upstream as well:
commit 47a01895fbd5e9ec03b88b6f995850dd247d711a
Author: Ján Tomko <jtomko>
AuthorDate: 2013-07-12 15:05:51 +0200
Commit: Ján Tomko <jtomko>
CommitDate: 2013-07-12 15:05:51 +0200
conf: reject pci-root controllers with non-zero indexes
https://bugzilla.redhat.com/show_bug.cgi?id=981261
git describe: v1.1.0-175-g47a0189
Verifying this bug in libvirt-1.1.1-1.el7: Steps: Add <controller type='pci' index='-1' model='pci-bridge'/> to guest xml: # virsh edit rhel7 error: internal error: Cannot parse controller index -1 Failed. Try again? [y,n,f,?]: error: internal error: Cannot parse controller index -1 Failed. Try again? [y,n,f,?]: error: internal error: Cannot parse controller index -1 Failed. Try again? [y,n,f,?]: Error out on negative index values. Add <controller type='pci' index='-2' model='pci-root'/> to guest xml: # virsh edit rhel7 error: internal error: Cannot parse controller index -2 Failed. Try again? [y,n,f,?]: Error also out on negative index values. Working as expected. So setting VERIFIED. This request was resolved in Red Hat Enterprise Linux 7.0. Contact your manager or support representative in case you have further questions about the request. |
Description of problem: It should report an error while add an invalid pci controller to the guest Version-Release number of selected component (if applicable): libvirt-1.1-0.el7.x86_64 qemu-kvm-1.5.1-2.el7.x86_64 kernel-3.10.0-0.rc7.64.el7.x86_64 How reproducible: 100% Steps 1.Prepare a normal guest virsh list Id Name State ---------------------------------------------------- - rhel72 shutoff 2.Edit the guest's xml and add the following content to the guest -- <controller type='pci' index='-1' model='pci-bridge'/> -- # virsh dumpxml rhel72|grep pci-bridge <controller type='pci' index='-1' model='pci-bridge'> 3.Start the guest,the guest will fail to start # virsh start rhel72 error: Failed to start domain rhel72 error: Unable to read from monitor: Connection reset by peer check the qemu's log LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin QEMU_AUDIO_DRV=spice /usr/libexec/qemu-kvm -name rhel72 -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -m 4001 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 403f2468-65cb-6be8-3735-4f654d3d5e4c -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/rhel72.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -device pci-bridge,chassis_nr=-1,id=pci.-1,bus=pci.0,addr=0x9 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -device piix3-usb-uhci,id=usb1,bus=pci.0,addr=0x7 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/mnt/zhwang/rhel7raw.img,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,fd=23,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:004a:03,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/rhel72.agent,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -spice port=5900,addr=0.0.0.0,disable-ticketing,seamless-migration=on -k en-us -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,bus=pci.0,addr=0x2 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 char device redirected to /dev/pts/1 (label charserial0) qemu-kvm: -device pci-bridge,chassis_nr=-1,id=pci.-1,bus=pci.0,addr=0x9: Parameter 'chassis_nr' expects uint8_t 2013-07-04 06:57:45.873+0000: shutting down 4.Delete the upper invalid controller, then, edit the guest's xml add the following content to the guest <controller type='pci' index='-1' model='pci-root'/> <controller type='pci' index='-1' model='pci-root'/> <controller type='pci' index='-1' model='pci-root'/> # virsh dumpxml rhel72 |grep pci-root <controller type='pci' index='-1' model='pci-root'/> <controller type='pci' index='-1' model='pci-root'/> <controller type='pci' index='-1' model='pci-root'/> <controller type='pci' index='0' model='pci-root'/> --this was valid one 5.Start the guest,the invalid pci controller didn't effect the guest start,and we can still see them while guest start completely. # virsh start rhel72 Domain rhel72 started # virsh dumpxml rhel72 |grep pci-root <controller type='pci' index='-1' model='pci-root'> <controller type='pci' index='-1' model='pci-root'> <controller type='pci' index='-1' model='pci-root'> <controller type='pci' index='0' model='pci-root'> Actual results: libvirt didn't check the the invalid pci controllers Expected results: It should report an error while add an invalid pci controller to the guest