Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1693031

Summary: On systems with more than 10 available boot devices, keys are uninintuitive
Product: Red Hat Enterprise Linux Advanced Virtualization Reporter: Ryan Barry <rbarry>
Component: seabiosAssignee: Gerd Hoffmann <kraxel>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: ---CC: aromito, jinzhao, juzhang, knoel, kraxel, mkalinin, ngu, qzhang, virt-maint
Target Milestone: rcFlags: knoel: mirror+
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: seabios-1.12.0-5.module+el8.1.0+4022+29a53beb Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-11-06 07:13:50 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: 1692592    

Description Ryan Barry 2019-03-27 01:03:43 UTC
Description of problem:
On systems with more than 10 available boot devices, seabios may prompt for "10", but only parses out the first char. "0" selects 10, while "10" selects 1.

Similarly, "11" may be selected by -, 12 by =. This is confusing to users

How reproducible:
100%

Steps to Reproduce:
1. Create a VM with more than 9 boot devices
2. Try to select the appropriate one
3.

Actual results:
See initial comment

Expected results:
Numeric entry is parsed

Comment 7 Ademar Reis 2019-07-15 15:39:52 UTC
Gerd, I don't see the patches upstream yet. Can this be merged and backported to 8.1? We have a couple of weeks before we need exceptions for BZs.

For now I'm setting ITR=8.2.0 to be safe.

Comment 8 Ademar Reis 2019-07-15 15:40:56 UTC
(In reply to Ademar Reis from comment #7)
> Gerd, I don't see the patches upstream yet. Can this be merged and
> backported to 8.1? We have a couple of weeks before we need exceptions for
> BZs.
> 

Setting needinfo.

Comment 9 Gerd Hoffmann 2019-07-30 12:54:20 UTC
(In reply to Ademar Reis from comment #7)
> Gerd, I don't see the patches upstream yet. Can this be merged and
> backported to 8.1? We have a couple of weeks before we need exceptions for
> BZs.

Upstream patches (master branch, no release yet with this):
  https://git.seabios.org/cgit/seabios.git/commit/?id=8acad25cd5f4a49573098e98c10118358fc48924
  https://git.seabios.org/cgit/seabios.git/commit/?id=18d237b4e43ea24795f522c0aab1b4f54100ca80

Didn't try yet to backport, should not be hard though, can try once I'm done with the PTO backlog.

Comment 15 Michael 2019-08-20 07:28:00 UTC
Hi all:

Verify this Bug follow those steps:

1. Boot guest with 16 devices. 

/usr/libexec/qemu-kvm -M pc -cpu EPYC  -enable-kvm \
-nodefaults -smp 4 -m 4G -name 002 -vga qxl -monitor stdio \
-device virtio-serial-pci,id=virtio-serial0 \
-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=5901,addr=0.0.0.0,disable-ticketing,image-compression=off,seamless-migration=on \
-netdev tap,id=hostnet0,vhost=on -device virtio-net-pci,mac=24:be:05:15:d1:81,netdev=hostnet0,id=net0 \
-drive file=/mnt/test/personal/choma/guest-nfs/rhel810-64-virtio-scsi.qcow2,if=none,id=guest-img,format=qcow2,werror=stop,rerror=stop -device virtio-blk-pci,drive=guest-img,id=os-disk \
-device virtio-blk-pci,drive=guest-img-1,id=os-disk-1 -drive file=storage-01,if=none,id=guest-img-1,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-2,id=os-disk-2 -drive file=storage-02,if=none,id=guest-img-2,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-3,id=os-disk-3 -drive file=storage-03,if=none,id=guest-img-3,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-4,id=os-disk-4 -drive file=storage-04,if=none,id=guest-img-4,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-5,id=os-disk-5 -drive file=storage-05,if=none,id=guest-img-5,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-6,id=os-disk-6 -drive file=storage-06,if=none,id=guest-img-6,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-7,id=os-disk-7 -drive file=storage-07,if=none,id=guest-img-7,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-8,id=os-disk-8 -drive file=storage-08,if=none,id=guest-img-8,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-9,id=os-disk-9 -drive file=storage-09,if=none,id=guest-img-9,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-10,id=os-disk-10 -drive file=storage-10,if=none,id=guest-img-10,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-11,id=os-disk-11 -drive file=storage-11,if=none,id=guest-img-11,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-12,id=os-disk-12 -drive file=storage-12,if=none,id=guest-img-12,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-13,id=os-disk-13 -drive file=storage-13,if=none,id=guest-img-13,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-14,id=os-disk-14 -drive file=storage-14,if=none,id=guest-img-14,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-15,id=os-disk-15 -drive file=storage-15,if=none,id=guest-img-15,format=qcow2 \
-device virtio-blk-pci,drive=guest-img-16,id=os-disk-16 -drive file=storage-16,if=none,id=guest-img-16,format=qcow2 \
-serial unix:/tmp/console,server,nowait \
-boot menu=on  \


[2] Press F12, check the boot menu. 
1.Virtio disk PCI:00:05.0
2.Virtio disk PCI:00:06.0
3.Virtio disk PCI:00:07.0
4.Virtio disk PCI:00:08.0
5.Virtio disk PCI:00:09.0
6.Virtio disk PCI:00:0a.0
7.Virtio disk PCI:00:0b.0
8.Virtio disk PCI:00:0c.0
9.Virtio disk PCI:00:0d.0
a.Virtio disk PCI:00:0e.0
b.Virtio disk PCI:00:0f.0
c.Virtio disk PCI:00:10.0
d.Virtio disk PCI:00:11.0
e.Virtio disk PCI:00:12.0
f.Virtio disk PCI:00:13.0
g.Virtio disk PCI:00:14.0
h.Legacy option rom
i.iPXE (PCI 00:04.0)

[3] select h, guest can be booted form "Legacy option rom".

Comment 16 Michael 2019-08-20 07:35:58 UTC
Hi all:

According comment 15, Change machine type to q35 and repeat above steps. 

[1] Boot guest with q35 machine type. 
/usr/libexec/qemu-kvm -M q35 -cpu EPYC  -enable-kvm \
-nodefaults -smp 4 -m 4G -name 002 -vga qxl -monitor stdio \
-nodefaults \
-device pcie-root-port,id=pcie.0-root-port-2,slot=2,chassis=2,addr=0x2,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-3,slot=3,chassis=3,addr=0x3,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-4,slot=4,chassis=4,addr=0x4,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-5,slot=5,chassis=5,addr=0x5,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-6,slot=6,chassis=6,addr=0x6,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-7,slot=7,chassis=7,addr=0x7,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-8,slot=8,chassis=8,addr=0x8,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-9,slot=9,chassis=9,addr=0x9,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-10,slot=10,chassis=10,addr=0x10,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-11,slot=11,chassis=11,addr=0x11,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-12,slot=12,chassis=12,addr=0x12,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-13,slot=13,chassis=13,addr=0x13,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-14,slot=14,chassis=14,addr=0x14,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-15,slot=15,chassis=15,addr=0x15,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-16,slot=16,chassis=16,addr=0x16,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-17,slot=17,chassis=17,addr=0x17,bus=pcie.0 \
-device pcie-root-port,id=pcie.0-root-port-18,slot=18,chassis=18,addr=0x18,bus=pcie.0 \
-device virtio-scsi-pci,id=scsi0,bus=pcie.0-root-port-2 -drive file=/mnt/test/personal/choma/guest-nfs/rhel810-64-virtio-scsi.qcow2,if=none,id=guest-img,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img,id=os-diski,bus=scsi0.0 \
-serial unix:/tmp/console,server,nowait \
-boot menu=on  \
-device virtio-serial-pci,id=virtio-serial0,bus=pcie.0-root-port-18 \
-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=5901,addr=0.0.0.0,disable-ticketing,image-compression=off,seamless-migration=on \
-netdev tap,id=hostnet0,vhost=on -device virtio-net-pci,mac=24:be:05:15:d1:81,netdev=hostnet0,id=net0 \
-device virtio-scsi-pci,id=scsi3,bus=pcie.0-root-port-3 -drive file=storage-01,if=none,id=guest-img-1,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-1,id=os-disk-1,bus=scsi3.0 \
-device virtio-scsi-pci,id=scsi4,bus=pcie.0-root-port-4 -drive file=storage-02,if=none,id=guest-img-2,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-2,id=os-disk-2,bus=scsi4.0 \
-device virtio-scsi-pci,id=scsi5,bus=pcie.0-root-port-5 -drive file=storage-03,if=none,id=guest-img-3,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-3,id=os-disk-3,bus=scsi5.0 \
-device virtio-scsi-pci,id=scsi6,bus=pcie.0-root-port-6 -drive file=storage-04,if=none,id=guest-img-4,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-4,id=os-disk-4,bus=scsi6.0 \
-device virtio-scsi-pci,id=scsi7,bus=pcie.0-root-port-7 -drive file=storage-05,if=none,id=guest-img-5,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-5,id=os-disk-5,bus=scsi7.0 \
-device virtio-scsi-pci,id=scsi8,bus=pcie.0-root-port-8 -drive file=storage-06,if=none,id=guest-img-6,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-6,id=os-disk-6,bus=scsi8.0 \
-device virtio-scsi-pci,id=scsi9,bus=pcie.0-root-port-9 -drive file=storage-07,if=none,id=guest-img-7,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-7,id=os-disk-7,bus=scsi9.0 \
-device virtio-scsi-pci,id=scsi10,bus=pcie.0-root-port-10 -drive file=storage-08,if=none,id=guest-img-8,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-8,id=os-disk-8,bus=scsi10.0 \
-device virtio-scsi-pci,id=scsi11,bus=pcie.0-root-port-11 -drive file=storage-09,if=none,id=guest-img-9,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-9,id=os-disk-9,bus=scsi11.0 \
-device virtio-scsi-pci,id=scsi12,bus=pcie.0-root-port-12 -drive file=storage-10,if=none,id=guest-img-10,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-10,id=os-disk-10,bus=scsi12.0 \
-device virtio-scsi-pci,id=scsi13,bus=pcie.0-root-port-13 -drive file=storage-11,if=none,id=guest-img-11,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-11,id=os-disk-11,bus=scsi13.0 \
-device virtio-scsi-pci,id=scsi14,bus=pcie.0-root-port-14 -drive file=storage-12,if=none,id=guest-img-12,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-12,id=os-disk-12,bus=scsi14.0 \
-device virtio-scsi-pci,id=scsi15,bus=pcie.0-root-port-15 -drive file=storage-13,if=none,id=guest-img-13,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-13,id=os-disk-13,bus=scsi15.0 \
-device virtio-scsi-pci,id=scsi16,bus=pcie.0-root-port-16 -drive file=storage-14,if=none,id=guest-img-14,format=qcow2,werror=stop,rerror=stop  -device scsi-hd,drive=guest-img-14,id=os-disk-14,bus=scsi16.0 \

[2] Press F12, check the boot menu. 
1.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
2.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
3.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
4.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
5.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
6.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
7.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
8.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
9.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
a.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
b.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
c.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
d.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
e.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
f.Virtio-scsi Drive QEMU QEMU HARDDISK 2.5+
g.Legacy option rom
h.iPXE (PCI 00:04.0)

[3] select g, guest can be booted form "Legacy option rom".

Comment 17 Michael 2019-08-20 07:39:16 UTC
Hi all:

According comment#15 and comment#16, we can select more than 10 available boot device and guest works well. 

Thus,mark this Bug as verified.


Thanks.

Comment 18 Michael 2019-09-04 02:59:57 UTC
Hi Gerd:

This issue was fixed on RHEL8 Fast Train. Do we have plan to fix it on RHEL8 slow train? Or fix on the RHEL7? 



Thanks.

Comment 19 Gerd Hoffmann 2019-09-04 05:19:54 UTC
(In reply to Michael from comment #18)
> Hi Gerd:
> 
> This issue was fixed on RHEL8 Fast Train. Do we have plan to fix it on RHEL8
> slow train? Or fix on the RHEL7? 

The customer case is about RHV which uses fast train, so I think this is handled.

Slow train should get it with the 8.3 sync latest, we could backport earlier if
customers are asking for it.

I don't think we should backport that to RHEL-7.

Comment 20 Michael 2019-09-04 05:24:52 UTC
(In reply to Gerd Hoffmann from comment #19) 
> 
> The customer case is about RHV which uses fast train, so I think this is
> handled.
> 
> Slow train should get it with the 8.3 sync latest, we could backport earlier
> if
> customers are asking for it.
> 
> I don't think we should backport that to RHEL-7.

Thanks Gerd, Understand.

Comment 23 errata-xmlrpc 2019-11-06 07:13:50 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://access.redhat.com/errata/RHBA-2019:3723