Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1047724

Summary: Guest could not start when enable boot menu and 4 boot devices
Product: Red Hat Enterprise Linux 7 Reporter: Cui Lei <lcui>
Component: virt-managerAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: areis, dyuan, gscrivan, knoel, mzhan, rbalakri, tzheng, virt-maint, xiaodwan
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-manager-1.2.0-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1047726 (view as bug list) Environment:
Last Closed: 2015-11-19 05:22:13 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: 1047726    
Attachments:
Description Flags
guest.xml none

Description Cui Lei 2014-01-02 02:23:27 UTC
Description of problem:
Guest could not start when enable boot menu and 4 boot devices, here is the error message:
"Error starting domain: internal error: process exited while connecting to monitor: qemu-kvm: Too many boot devices for PC"
Guest xml please refer to attachment

If make <bootmenu enable='no'/>, guest could start

Detail:
Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 100, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
  File "/usr/share/virt-manager/virtManager/asyncjob.py", line 122, in tmpcb
    callback(*args, **kwargs)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1220, in startup
    self._backend.create()
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 698, in create
    if ret == -1: raise libvirtError ('virDomainCreate() failed', dom=self)
libvirtError: internal error: process exited while connecting to monitor: qemu-kvm: Too many boot devices for PC

Here is the key part from libvirtd.log

2014-01-02 01:59:08.950+0000: 25918: debug : virCommandRunAsync:2229 : About to run LC_ALL=C PATH=/sbin:/usr/sbin:/bin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name citrix-lcui -S -M rhel6.5.0 -cpu qemu32 -enable-kvm -m 937 -realtime mlock=off -smp 1,maxcpus=3,sockets=3,cores=1,threads=1 -uuid 3694f287-9230-824b-3feb-fe1ba25c103d -nodefconfig -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/citrix-lcui.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot order=cdan,menu=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/var/lib/libvirt/images/citrix-lcui-xvda,if=none,id=drive-virtio-disk0,format=raw,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,id=virtio-disk0 -drive if=none,media=cdrom,id=drive-ide0-0-0,readonly=on,format=raw -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,fd=25,id=hostnet0,vhost=on,vhostfd=26 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=ae:82:88:e6:59:56,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device usb-tablet,id=input0 -vnc 0.0.0.0:2 -vga cirrus -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x5

Please pay attention to "-boot order=cdan,menu=on"



Version-Release number of selected component (if applicable):
libvirt-1.1.1-16.el7.x86_64
qemu-kvm-1.5.3-30.el7.x86_64
kernel-3.10.0-64.el7.x86_64
virt-manager-0.10.0-8.el7.noarch


How reproducible:
always

Steps to Reproduce:
1. Prepare a guest and open it with virt-manger

2. In VM details page-->Boot Options, tick "Enable boot menu" and tick all the 4 boot devices. (you could also edit xml directly)

3. start the guest

Actual results:
Error message popup, "Error starting domain: internal error: process exited while connecting to monitor: qemu-kvm: Too many boot devices for PC"

Expected results:
No error message popup

Additional info:
Un-check "Enable boot menu" check boor change <bootmenu enable='no'/>), the guest could start with enable 4 boot devices.

Comment 1 Cui Lei 2014-01-02 02:24:44 UTC
Created attachment 844338 [details]
guest.xml

Comment 4 Pavel Hrdina 2015-06-19 09:08:48 UTC
Moving to qemu-kvm, we support this option and the error message is from qemu-kvm.

Comment 5 Gerd Hoffmann 2015-06-22 07:10:27 UTC
(In reply to Pavel Hrdina from comment #4)
> Moving to qemu-kvm, we support this option and the error message is from
> qemu-kvm.

Moving back to virt-manager.  Bootordering via "-boot order=" simply doesn't work for more than three devices, due to virtual hardware restrictions.  We got bootindex to fix that (and other issues too, for example you can specify *which* disk to boot from) years ago.  libvirt supports this via "<boot order='$priority'/>" for bootable devices in domain xml.  virt-manager should use that to configure the boot order.

Comment 6 Pavel Hrdina 2015-06-25 13:28:25 UTC
Upstream commit:

commit 719f23a273e0db8c43a36f478c888f7a258bb00b
Author: Cole Robinson <crobinso>
Date:   Sun Feb 9 13:36:12 2014 -0500

    cli: Support per-device <boot order=>


Fixed by rebase to upstream virt-manager-1.2.0.

Comment 7 Xiaodai Wang 2015-06-26 07:14:28 UTC
I can reproduce this bug with package:
# rpm -q virt-manager
virt-manager-0.10.0-8.el7.noarch

Steps:
1. prepare a guest and open the guest details window. Check "Enable boot menu" and select all of the four boot devices.
2. Start the guest.


Result:
Error starting domain: internal error: process exited while connecting to monitor: 2015-06-26T06:13:47.60379Z qemu-kvm: Too many boot devices for PC

Then try to verify with latest build:
virt-manager-1.2.1-2.el7.noarch.rpm  


Result:
After updated virt-manger to latest packages and start the guest directly, it still reports the above error. 

1. I checked the xml, it's same as the old one. so when start the guest, the same error reports.
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
    <boot dev='network'/>
    <boot dev='hd'/>
    <boot dev='fd'/>
    <boot dev='cdrom'/>
    <bootmenu enable='yes'/>
  </os>
2. I checked the Boot Options GUI, now only two boot devices are left. and then add another two IDE disk and Apply it. Check the xml, "<boot dev..." are removed and "<boot order..." are added for each boot device.
3. Now start the guest again, it boots successfully.

So the bug is fixed. 

By the way, I think it's better to automatically modify the old xml to correctly format when starting the guest in virt-manager version which suport "<boot order...".

Comment 9 Xiaodai Wang 2015-07-08 08:50:20 UTC
Move the bug to VERIFIED based on #comment 7.

Comment 11 errata-xmlrpc 2015-11-19 05:22:13 UTC
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/RHBA-2015-2206.html