Bug 855237

Summary: [libvirt] Add a new boot parameter to set the delay time before rebooting
Product: Red Hat Enterprise Linux 6 Reporter: Eric Blake <eblake>
Component: libvirtAssignee: Martin Kletzander <mkletzan>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.4CC: acathrow, akong, bili, bsarathy, dallan, dyasny, dyuan, gleb, juzhang, mkenneth, mzhan, rwu, veillard, virt-maint, wduffee, zhpeng
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-0.10.2-1.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 854191 Environment:
Last Closed: 2013-02-21 07:23:16 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: 854191    
Bug Blocks:    

Description Eric Blake 2012-09-07 04:40:08 UTC
Cloning to get libvirt to expose this.

+++ This bug was initially created as a clone of Bug #854191 +++

Description of problem:

There is a bug [1] (VM will reboot if no boot failed).

As said in [2], we need to add a new boot parameter and put it into romfile for seabios to use, it's used to configure the delay time.

This work should start on upstream.

[1] Bug 831273 - RFE: reboot VM if no bootable device found
[2] https://bugzilla.redhat.com/show_bug.cgi?id=831273#c18

--- Additional comment from akong on 2012-09-06 21:15:00 MDT ---

patch posted to upstream: http://patchwork.ozlabs.org/patch/182306/

example:
 -boot reboot-timeout=10000

With this option, guest will wait for a given time if not find
bootabled device, then reboot. If reboot-timeout is '-1', guest
will not reboot, qemu passes '-1' to bios by default.

--- Additional comment from akong on 2012-09-06 22:33:32 MDT ---

Hi Eric,

If customer wants to use this 'feature'[1], do we need to change libvirt/virt-manager/etc to use this qemu parameter?


[1] Bug 831273 - RFE: reboot VM if no bootable device found

Thanks, Amos

Comment 2 Martin Kletzander 2012-09-20 14:45:49 UTC
Moving to POST:

commit c33a922faad1de363aa4212edc1a329bd47e52b0
Author: Martin Kletzander <mkletzan>
Date:   Tue Sep 18 12:30:52 2012 +0200

    Add support for reboot-timeout

commit 94827a785d97e2ec83d488d664d10b28fbaed57e
Author: Martin Kletzander <mkletzan>
Date:   Tue Sep 18 12:31:30 2012 +0200

    qemu: Add support for reboot-timeout

Comment 7 zhpeng 2012-11-02 07:47:06 UTC
Test ENV:
libvirt-0.10.2-6.el6.x86_64


Run a guest without any bootable device or pxe env.

Tried several rebootTimeout value: -1, 0, 1, 10000, 65535, >65535, <-1, 1.5, -1.5


<os>
    <type arch='x86_64' machine='rhel6.3.0'>hvm</type>
    <loader>/usr/share/seabios/bios-pm.bin</loader>
    <boot dev='network'/>
    <boot dev='hd'/>
    <bios useserial='yes' rebootTimeout='$TIME'/>
</os>

qemu process can get the correct value, and it works fine. 

0-65535, guest will reboot after 0~65s if boot from failure.
-1, will not reboot again.

when value is Out of range libvirt will report error:
virsh # edit aaa
error: unsupported configuration: invalid value for rebootTimeout, must be in range [-1,65535]
Failed. Try again? [y,n,f,?]:


So it's verified.

Comment 8 errata-xmlrpc 2013-02-21 07:23:16 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.

http://rhn.redhat.com/errata/RHSA-2013-0276.html