Red Hat Bugzilla – Bug 869206
Guest cannot start after changing watchdog from i6300esb to ib700
Last modified: 2013-11-21 15:38:18 EST
Description of problem: Guest cannot start after changing watchdog from i6300esb to ib700. Version-Release number of selected component (if applicable): libvirt-0.10.2-4.el6.x86_64 virt-manager-0.9.0-15.el6.x86_64 Reproduce steps: 1. Have a guest with i6300esb device. 2. Change the watchdog from i6300esb to ib700 through virt-manager. 3. Start the guest Actual results: 1. After step 3, guest cannot be started with following error [root@localhost ~]# virsh start T2 error: Failed to start domain T2 error: internal error Process exited while reading console log output: char device redirected to /dev/pts/2 qemu-kvm: -device ib700,id=watchdog0,bus=pci.0,addr=0x4: Device 'ib700' can't go on a PCI bus Expected results: 1. After step 3, guest can be started normally Additional info: 1. There is an existed bug for this error, but it just covered add ib700 directly, not changing, so if we add ib700 directly, the guest can be started, but not for changing it. https://bugzilla.redhat.com/show_bug.cgi?id=667091
This is a general problem in virt-manager. Changing a device type/model does not reset the guest address the device should be reachable at and thus you can get meaningless combinations. E.g., changing ide disk to virt-io will tell libvirt to provide the virtio disk at ide bus (or ide disk on pci bus if you're changing from virt-io do ide). Similarly, if you have a watchdog i6300esb device presented on a pci bus and change it to ib700, virt-manager will ask for ib700 on a pci bus, which is wrong.
AFAIK, virt-manager doesn't offer specifying address of devices, so dropping the <address> tag completely should be enough when changing models of devices.
I can reproduce this bug: Version: libvirt-0.10.2-2.el6.x86_64(libvirt-0.10.2-4.el6.x86_64 has been deleted) virt-manager-0.9.0-15.el6.x86_64 Steps for Reproduce: 1. Built a guest with i6300esb watchdog device. 2. Change the watchdog from i6300esb to ib700 through virt-manager. 3. Start the guest Result: After step 3, guest cannot be started with following error [root@localhost ~]# virsh start test error: Failed to start domain test error: internal error Process exited while reading console log output: char device redirected to /dev/pts/2 qemu-kvm: -device ib700,id=watchdog0,bus=pci.0,addr=0x4: Device 'ib700' can't go on a PCI bus Verify: libvirt-0.10.2-21.el6.x86_64 virt-manager-0.9.0-19.el6.x86_64 Steps for Verify: 1. Built a guest with i6300esb watchdog device. 2. Change the watchdog from i6300esb to ib700 through virt-manager. 3. Start the guest Result: After step 3, guest can be started normally
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. http://rhn.redhat.com/errata/RHBA-2013-1646.html