• Konrad Rzeszutek Wilk's avatar
    xen/manage: Poweroff forcefully if user-space is not yet up. · eb47f712
    Konrad Rzeszutek Wilk authored
    The user can launch the guest in this sequence:
    
    xl create -p /vm.cfg	[launch, but pause it]
    xl shutdown latest	[sets control/shutdown=poweroff]
    xl unpause latest
    xl console latest	[and see that the guest has completely
    ignored the shutdown request]
    
    In reality the guest hasn't ignored it. It registers a watch
    and gets a notification that there is value. It then calls
    the shutdown_handler which ends up calling orderly_shutdown.
    
    Unfortunately that is so early in the bootup that there
    are no user-space. Which means that the orderly_shutdown fails.
    But since the force flag was set to false it continues on without
    reporting.
    
    What we really want to is to use the force when we are in the
    SYSTEM_BOOTING state and not use the 'force' when SYSTEM_RUNNING.
    
    However, if we are in the running state - and the shutdown command
    has been given before the user-space has been setup, there is nothing
    we can do. Worst yet, we stop ignoring the 'xl shutdown' requests!
    
    As such, the other part of this patch is to only stop ignoring
    the 'xl shutdown' when we are truly in the power off sequence.
    
    That means the user can do multiple 'xl shutdown' and we will try
    to act on them instead of ignoring them.
    
    Fixes-Bug: http://bugs.xenproject.org/xen/bug/6Reported-by: default avatarAlex Bligh <alex@alex.org.uk>
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
    eb47f712
manage.c 7.67 KB