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

Bug 1649847

Summary: OVMF: VM Custom emulated machine value is incorrect when selecting Q35 chipset with UEFI BIOS.
Product: [oVirt] ovirt-engine Reporter: Nisim Simsolo <nsimsolo>
Component: BLL.VirtAssignee: Shmuel Melamud <smelamud>
Status: CLOSED NOTABUG QA Contact: meital avital <mavital>
Severity: low Docs Contact:
Priority: medium    
Version: 4.3.0CC: bugs, guillaume.pavese, nsimsolo, rbarry, srosenbe
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-03-17 12:49:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1527889    
Attachments:
Description Flags
engine.log
none
vdsm.log
none
edit VM screenshot
none
set emulated machine, screenshot
none
engine.log, see 2019-05-15 13:54:47,786+03 ERROR
none
Q 35 with bios emulation set to Q35 none

Description Nisim Simsolo 2018-11-14 15:58:14 UTC
Description of problem:
When selecting BIOS type = Q35 chipset with UEFI BIOS, the Custom emulated machine remains cluster default value (in my case pc-i440fx). 
Trying to run such VM failed with the next vdsm ERROR: 

2018-11-14 17:41:03,402+0200 ERROR (vm/07c11848) [virt.vm] (vmId='07c11848-4854-49fa-b417-c081f079968e') The vm start process failed (vm:934)
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/vdsm/virt/vm.py", line 863, in _startUnderlyingVm
    self._run()
.
.
.
libvirtError: unsupported configuration: bus must be 0 for ide controller

Although in the future it will be able to allow setting q35 on the whole cluster, the custom emulated machine should be changed automatically to Q35 in case the cluster is not set with Q35. 

Version-Release number of selected component (if applicable):
ovirt-engine-4.3.0-0.0.master.20181101091940.git61310aa.el7
libvirt-client-4.5.0-10.el7.x86_64
vdsm-4.30.1-52.git5426c0c.el7.x86_64
qemu-kvm-ev-2.10.0-21.el7_5.7.1.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Create new VM, undde edit VM -> system -> advanced parameters, select BIOS type = "Q35 chipset with UEFI BIOS". don't change custom emulated machine value.
2. Run VM
3.

Actual results:
VM failed to run.

Expected results:
Custom emulated machine type should be changed to Q35 automatically when selecting Q35 with UEFI BIOS.

Additional info:
edit VM Screenshot, engine.log and vdsm.log attached.

Comment 1 Nisim Simsolo 2018-11-14 15:59:59 UTC
Created attachment 1505720 [details]
engine.log

Comment 2 Nisim Simsolo 2018-11-14 16:00:29 UTC
Created attachment 1505721 [details]
vdsm.log

Comment 3 Nisim Simsolo 2018-11-14 16:04:07 UTC
Created attachment 1505722 [details]
edit VM screenshot

Comment 4 Michal Skrivanek 2018-11-15 06:58:13 UTC
I do not understand how/where did you set Custom emulated machine?

Comment 5 Michal Skrivanek 2018-11-15 07:30:06 UTC
oh, or you mean just the message in the box.
that's really just cosmetic

Comment 6 Nisim Simsolo 2018-11-15 07:34:06 UTC
Created attachment 1505965 [details]
set emulated machine, screenshot

Comment 7 Nisim Simsolo 2018-11-15 07:35:39 UTC
Edit VM -> system -> expand advanced parameters, under BIOS type dropbox there is a custom emulated machine dropbox.
Screenshot example attached.

Comment 8 Nisim Simsolo 2018-11-15 07:40:24 UTC
(In reply to Michal Skrivanek from comment #5)
> oh, or you mean just the message in the box.
> that's really just cosmetic

It's not that cosmetic, because the default in my case is "pc-i440fx-rhel" and when selecting Q35 with UEFI BIOS and leaving this field with pc-i440fx, the VM failed to run with libvirtError: unsupported configuration: bus must be 0 for ide controller.

Comment 9 Ryan Barry 2019-01-21 14:53:38 UTC
Re-targeting to 4.3.1 since it is missing a patch, an acked blocker flag, or both

Comment 10 Ryan Barry 2019-05-15 03:25:20 UTC
Still reproducible?

Comment 11 Nisim Simsolo 2019-05-15 10:59:27 UTC
sort of...
Using rhvm-4.3.3.7-0.1.el7:
- Now it's possible to run new VM with Q35 chipset with UEFI BIOS.
- but run once VM with PXE or CD-ROM failed with the next engine.log: 
2019-05-15 13:52:03,840+03 ERROR [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (ForkJoinPool-1-worker-0) [] EVENT_ID: VM_DOWN_ERROR(119), VM new is down with error. Exit message: XML error: The P
CI controller with index='0' must be model='pci-root' for this machine type, but model='pcie-root' was found instead.

engine.log attached.
Should I report a new bug on the issue?

Comment 12 Nisim Simsolo 2019-05-15 11:06:31 UTC
Created attachment 1568954 [details]
engine.log, see 2019-05-15 13:54:47,786+03 ERROR

Comment 13 Ryan Barry 2019-05-15 13:19:10 UTC
Same bug works, since it's still a problem with the properties

Comment 14 Ryan Barry 2020-01-07 12:46:43 UTC
Still relevant?

Comment 15 Steven Rosenberg 2020-02-17 16:58:42 UTC
Created attachment 1663571 [details]
Q 35 with bios emulation set to Q35

As per the snapshot, the VM named VMLinux was set to "Q35 chipset with UEFI Bios" and the emulation was set automatically to "Cluster default(pc-q35-rhel7.6.0)". Please not that the emulation drop down is disabled so that the user cannot change it. As per the left side of the screenshot, after saving the setting, the VMLinux  VM runs fine. The VM edit was reopened to exhibit the settings.

Please retest this issue with the current master branch accordingly.

Comment 16 Steven Rosenberg 2020-02-17 16:59:39 UTC
(In reply to Steven Rosenberg from comment #15)
> Created attachment 1663571 [details]
> Q 35 with bios emulation set to Q35
> 
> As per the snapshot, the VM named VMLinux was set to "Q35 chipset with UEFI
> Bios" and the emulation was set automatically to "Cluster
> default(pc-q35-rhel7.6.0)". Please not that the emulation drop down is
> disabled so that the user cannot change it. As per the left side of the
> screenshot, after saving the setting, the VMLinux  VM runs fine. The VM edit
> was reopened to exhibit the settings.
> 
> Please retest this issue with the current master branch accordingly.

Comment 17 Steven Rosenberg 2020-02-18 09:46:18 UTC
(In reply to Steven Rosenberg from comment #16)
> (In reply to Steven Rosenberg from comment #15)
> > Created attachment 1663571 [details]
> > Q 35 with bios emulation set to Q35
> > 
> > As per the snapshot, the VM named VMLinux was set to "Q35 chipset with UEFI
> > Bios" and the emulation was set automatically to "Cluster
> > default(pc-q35-rhel7.6.0)". Please not that the emulation drop down is
> > disabled so that the user cannot change it. As per the left side of the
> > screenshot, after saving the setting, the VMLinux  VM runs fine. The VM edit
> > was reopened to exhibit the settings.
> > 
> > Please retest this issue with the current master branch accordingly.

Clarification, please note: the emulation machine type is grey, but not disabled so the user can change it.

Comment 18 Steven Rosenberg 2020-03-17 12:49:46 UTC
The Emulation Machine Type's default was previously changed to the Q35 default which should resolve some of the related scenarios. 

Being that the setting of the Bios Type and the Custom Emulation Machine Type are advanced features, it is the responsibility of
the user to set the appropriate settings accordingly.

Comment 19 Red Hat Bugzilla 2023-09-14 04:42:21 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days