Bug 1817053

Summary: VM can not boot: ''XML error: Invalid PCI address' after 'Run once' VM
Product: Red Hat Enterprise Virtualization Manager Reporter: Radek Duda <rduda>
Component: ovirt-engineAssignee: Nobody <nobody>
Status: CLOSED DUPLICATE QA Contact: meital avital <mavital>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.4.0CC: rbarry, Rhev-m-bugs, spice-qe-bugs, srosenbe
Target Milestone: ---Keywords: Regression
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-26 03:11:43 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:
Attachments:
Description Flags
vdsm.log (
none
libvirt xml after 'run once'
none
libvirt xml before 'Run once'
none
VM devices detected by RHV after step 3
none
engine.log none

Description Radek Duda 2020-03-25 13:41:10 UTC
Created attachment 1673441 [details]
vdsm.log (

Description of problem:
VM can not boot after 'Run ance'.

Version-Release number of selected component (if applicable):
engine (rhel8.2):
rhv-4.4.0-0.26.master.el8ev
ovirt-engine-4.4.0-0.26.master.el8ev.noarch

host (rhel8.2):
vdsm-4.40.7-1.el8ev.x86_64
libvirt-client-6.0.0-13.module+el8.2.0+6048+0fa476b4.x86_64
qemu-kvm-4.2.0-15.module+el8.2.0+6029+618ef2ec.x86_64

How reproducible:
always

Steps to Reproduce:
1. Create VM in rhv4.4
2. Hit 'Run once' button, do not modify anything and hit OK
3. power off the VM
4. try to start VM again

Actual results:
VM can not be started neither by 'Run once' nor by 'Run' buttons.

vdsm.log:
2020-03-25 14:07:56,464+0100 ERROR (vm/6bcc7764) [virt.vm] (vmId='6bcc7764-3f91-4236-84bc-e7eccebd1942') The vm start process failed (vm:857)
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/vdsm/virt/vm.py", line 787, in _startUnderlyingVm
    self._run()
  File "/usr/lib/python3.6/site-packages/vdsm/virt/vm.py", line 2591, in _run
    dom = self._connection.defineXML(self._domain.xml)
  File "/usr/lib/python3.6/site-packages/vdsm/common/libvirtconnection.py", line 131, in wrapper
    ret = f(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/vdsm/common/function.py", line 94, in wrapper
    return func(inst, *args, **kwargs)
  File "/usr/lib64/python3.6/site-packages/libvirt.py", line 4047, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirt.libvirtError: XML error: Invalid PCI address 0000:04:00.0. slot must be >= 1
2020-03-25 14:07:56,464+0100 INFO  (vm/6bcc7764) [virt.vm] (vmId='6bcc7764-3f91-4236-84bc-e7eccebd1942') Changed state to Down: XML error: Invalid PCI address 0000:04:00.0. slot must be >= 1 (code=1) (vm:1615)

Expected results:
Vm can be started after it has been "runned once" in the past.

Additional info:

Comment 1 Radek Duda 2020-03-25 13:42:35 UTC
Comment on attachment 1673441 [details]
vdsm.log (

'Run' VM -> 'Run once' VM -> 'Run' VM (Error)

Comment 2 Radek Duda 2020-03-25 13:49:32 UTC
Created attachment 1673442 [details]
libvirt xml after 'run once'

libvirt xml was changed - there are addresses added

Comment 3 Radek Duda 2020-03-25 13:50:28 UTC
Created attachment 1673443 [details]
libvirt xml before 'Run once'

Comment 4 Radek Duda 2020-03-25 13:54:05 UTC
Created attachment 1673445 [details]
VM devices detected by RHV after step 3

Comment 11 Radek Duda 2020-03-25 14:02:41 UTC
Created attachment 1673446 [details]
engine.log

Comment 14 Ryan Barry 2020-03-26 03:11:43 UTC

*** This bug has been marked as a duplicate of bug 1770697 ***

Comment 15 Ryan Barry 2020-03-26 03:15:01 UTC

*** This bug has been marked as a duplicate of bug 1813694 ***

Comment 16 Ryan Barry 2020-03-26 03:18:09 UTC
Steven, please take a look at the logs here. It doesn't look exactly like https://bugzilla.redhat.com/show_bug.cgi?id=1813694#c5, but is extremely similar

Comment 17 Steven Rosenberg 2020-03-29 13:42:09 UTC
(In reply to Ryan Barry from comment #16)
> Steven, please take a look at the logs here. It doesn't look exactly like
> https://bugzilla.redhat.com/show_bug.cgi?id=1813694#c5, but is extremely
> similar

The pending referenced issue [1] will only fix the default scenario to ensure the default Bios Type and Emulation machine Type are synchronized. For other scenarios where the user actually changes the default, we shall leave the onus on the user to ensure that the user is setting scenarios that make sense being that they are considered to be advanced features due to limitations within the libvirt. 

This error [2] will occur if the Bios Type of the VM is set to Legacy Bios while the Emulation Machine Type is set to a Q35 selection because the slot needs to be greater than 0 and the libvirt is currently not handling that.


[1] https://bugzilla.redhat.com/show_bug.cgi?id=1813694
[2] 2020-03-25 14:07:56,464+0100 INFO  (vm/6bcc7764) [virt.vm] (vmId='6bcc7764-3f91-4236-84bc-e7eccebd1942') Changed state to Down: XML error: Invalid PCI address 0000:04:00.0. slot must be >= 1 (code=1) (vm:1615)

Comment 18 Steven Rosenberg 2020-03-29 16:15:48 UTC
(In reply to Steven Rosenberg from comment #17)
> (In reply to Ryan Barry from comment #16)
> > Steven, please take a look at the logs here. It doesn't look exactly like
> > https://bugzilla.redhat.com/show_bug.cgi?id=1813694#c5, but is extremely
> > similar
> 
> The pending referenced issue [1] will only fix the default scenario to
> ensure the default Bios Type and Emulation machine Type are synchronized.
> For other scenarios where the user actually changes the default, we shall
> leave the onus on the user to ensure that the user is setting scenarios that
> make sense being that they are considered to be advanced features due to
> limitations within the libvirt. 
> 
> This error [2] will occur if the Bios Type of the VM is set to Legacy Bios
> while the Emulation Machine Type is set to a Q35 selection because the slot
> needs to be greater than 0 and the libvirt is currently not handling that.
> 
> 
> [1] https://bugzilla.redhat.com/show_bug.cgi?id=1813694
> [2] 2020-03-25 14:07:56,464+0100 INFO  (vm/6bcc7764) [virt.vm]
> (vmId='6bcc7764-3f91-4236-84bc-e7eccebd1942') Changed state to Down: XML
> error: Invalid PCI address 0000:04:00.0. slot must be >= 1 (code=1) (vm:1615)

Also, this is a duplicate of another issue [1] as well.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1770697