VirtualBox

Ignore:
Timestamp:
Sep 24, 2021 1:08:32 PM (3 years ago)
Author:
vboxsync
Message:

FE/VBoxSDL+VirtualBox,Main/Console+Machine+VirtualBox.xidl: VMs which
crash while restoring from the 'Saved' state shouldn't lose their saved
state file. bugref:1484

A new machine state named 'AbortedSaved' has been added which a VM will
enter if it crashes when restoring from the 'Saved' state before the
'Running' state has been reached. A VM in the 'AbortedSaved' machine
state will have its saved state file preserved so that the VM can still be
restored once the cause of the failure to powerUp() and reach the
'Running' state has been resolved.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxSDL/VBoxSDL.cpp

    r86650 r91363  
    480480                if (     machineState == MachineState_Aborted
    481481                         ||   machineState == MachineState_Teleported
    482                          ||  (machineState == MachineState_Saved      && !m_fIgnorePowerOffEvents)
    483                          ||  (machineState == MachineState_PoweredOff && !m_fIgnorePowerOffEvents)
     482                         ||  (machineState == MachineState_Saved        && !m_fIgnorePowerOffEvents)
     483                         ||  (machineState == MachineState_AbortedSaved && !m_fIgnorePowerOffEvents)
     484                         ||  (machineState == MachineState_PoweredOff   && !m_fIgnorePowerOffEvents)
    484485                         )
    485486                {
     
    615616            case MachineState_Teleported:           return "Teleported";
    616617            case MachineState_Aborted:              return "Aborted";
     618            case MachineState_AbortedSaved:         return "Aborted-Saved";
    617619            case MachineState_Running:              return "Running";
    618620            case MachineState_Teleporting:          return "Teleporting";
     
    18921894        MachineState_T machineState;
    18931895        gpMachine->COMGETTER(State)(&machineState);
    1894         if (machineState == MachineState_Saved)
     1896        if (machineState == MachineState_Saved || machineState == MachineState_AbortedSaved)
    18951897        {
    18961898            CHECK_ERROR(gpMachine, DiscardSavedState(true /* fDeleteFile */));
     
    30793081     */
    30803082    if (   gpMachine
    3081         && machineState != MachineState_Saved)
     3083        && machineState != MachineState_Saved
     3084        && machineState != MachineState_AbortedSaved)
    30823085    {
    30833086        rc = gpMachine->DiscardSettings();
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette