Bug 1765443

Summary: cross migration from rhel8.0av to rhel8.1av fails with rebootTimeout='-1'
Product: Red Hat Enterprise Linux Advanced Virtualization Reporter: yafu <yafu>
Component: qemu-kvmAssignee: Dr. David Alan Gilbert <dgilbert>
qemu-kvm sub component: General QA Contact: jingzhao <jinzhao>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: armbru, chayang, coli, ddepaula, dgilbert, hhan, jinzhao, juzhang, knoel, mprivozn, philmd, qzhang, virt-maint, xuwei
Version: 8.1   
Target Milestone: rc   
Target Release: 8.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-4.2.0-1.module+el8.2.0+4793+b09dd2fb Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-05-05 09:50:34 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:

Description yafu 2019-10-25 06:28:52 UTC
Description of problem:
cross migration from rhel8.0av to rhel8.1av fails with rebootTimeout='-1'

Version-Release number of selected component (if applicable):
RHEL8.0av:
libvirt-daemon-kvm-5.0.0-12.module+el8.0.1+3755+6782b0ed.x86_64
qemu-kvm-3.1.0-30.module+el8.0.1+3755+6782b0ed.x86_64

RHEL8.1av:
libvirt-5.6.0-6.module+el8.1.0+4160+b50057dc.x86_64
qemu-kvm-4.1.0-13.module+el8.1.0+4164+854d66f5.x86_64

How reproducible:
100%

Steps to Reproduce:
1.On rhel8.0.1 host, prepare a running guest with rebootTimeout='-1':
#virsh dumpxml iommu2
   <os>
    ...
    <bios rebootTimeout='-1'/>
  </os>

2.Check the qemu cmd line:
#ps aux | grep -i qemu
/usr/libexec/qemu-kvm -name guest=iommu2,..-boot reboot-timeout=-1,..

3.Migrate the guest from rhel8.0.1 host to rhel8.1.0 host:
## virsh migrate iommu2 qemu+ssh://10.73.73.110/system --live --verbose
root.73.110's password: 
error: internal error: process exited while connecting to monitor: 
2019-10-25T05:52:54.615360Z qemu-kvm: reboot timeout is invalid,it should be a value between 0 and 65535

Actual results:
Migration fails

Expected results:
Migration succeeds

Additional info:

Comment 1 Dr. David Alan Gilbert 2019-10-25 16:19:21 UTC
This happens before we actually get to migration;  qemu rejects reboot-timeout=-1 at startup due to commit ee5d0f89de3.
Yet qemu documents reboot-timeout=-1 as being both the default and meaning 'guest will not reboot.

Lets ask Philippe what fw_cfg is expecting to happen.

Comment 2 Dr. David Alan Gilbert 2019-10-25 16:31:25 UTC
It's also documented as working in the libvirt xml:
https://libvirt.org/formatdomain.html#elementsOSBIOS

 Since 0.9.4. Since 0.10.2 (QEMU only) there is another attribute, rebootTimeout that controls whether and after how long the guest should start booting again in case the boot fails (according to BIOS). The value is in milliseconds with maximum of 65535 and special value -1 disables the reboot.

Comment 3 Dr. David Alan Gilbert 2019-10-25 16:49:35 UTC
actually, looks like an easy fix, will post.

Comment 4 Dr. David Alan Gilbert 2019-10-25 16:57:37 UTC
posted:
  fw_cfg: Allow reboot-timeout=-1 again

Comment 5 Dr. David Alan Gilbert 2019-10-25 17:09:14 UTC
CC'ing Michal Privoznik since I see he was reviewing a libvirt change to remove the -1 feature.

Comment 7 Dr. David Alan Gilbert 2019-11-07 18:15:14 UTC
merged upstream for 4.2; commit:
20a192203222efde055d fw_cfg: Allow reboot-timeout=-1 again

should get it when we upgrade to 4.2

Comment 8 Han Han 2019-11-13 06:20:44 UTC
Please check if it is worthwhile to be fixed in RHEL8.1-AV.
Because the problem is introduced in qemu-4.0, it will obviously cause migration failure
when <bios rebootTimeout='-1'/>  dest host RHEL8.1-AV.

For the influence of products, I have no evindence that any uplayer products like vdsm, nova,
and kubevirt are using this attrib. So I think there is no impact on these products.

Comment 9 jingzhao 2019-11-13 08:40:09 UTC
(In reply to Han Han from comment #8)
> Please check if it is worthwhile to be fixed in RHEL8.1-AV.
> Because the problem is introduced in qemu-4.0, it will obviously cause
> migration failure
> when <bios rebootTimeout='-1'/>  dest host RHEL8.1-AV.
> 
> For the influence of products, I have no evindence that any uplayer products
> like vdsm, nova,
> and kubevirt are using this attrib. So I think there is no impact on these
> products.

Agreed 

Thanks 
Jing

Comment 14 Ademar Reis 2020-02-05 23:07:39 UTC
QEMU has been recently split into sub-components and as a one-time operation to avoid breakage of tools, we are setting the QEMU sub-component of this BZ to "General". Please review and change the sub-component if necessary the next time you review this BZ. Thanks

Comment 17 errata-xmlrpc 2020-05-05 09:50:34 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-2020:2017