VirtualBox

Ignore:
Timestamp:
Jul 31, 2019 2:18:34 PM (5 years ago)
Author:
vboxsync
Message:

VMM,Main,++: Retired the unfinished FTM component.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/ConsoleImpl.cpp

    r79120 r80074  
    118118#endif /* VBOX_WITH_NETSHAPER */
    119119#include <VBox/vmm/mm.h>
    120 #include <VBox/vmm/ftm.h>
    121120#include <VBox/vmm/ssm.h>
    122121#include <VBox/err.h>
     
    231230    VMPowerUpTask(Console *aConsole,
    232231                  Progress *aProgress)
    233         : VMTask(aConsole, aProgress, NULL /* aServerProgress */,
    234                  false /* aUsesVMPtr */),
    235           mConfigConstructor(NULL),
    236           mStartPaused(false),
    237           mTeleporterEnabled(FALSE),
    238           mEnmFaultToleranceState(FaultToleranceState_Inactive)
     232        : VMTask(aConsole, aProgress, NULL /* aServerProgress */, false /* aUsesVMPtr */)
     233        , mConfigConstructor(NULL)
     234        , mStartPaused(false)
     235        , mTeleporterEnabled(FALSE)
    239236    {
    240237        m_strTaskName = "VMPwrUp";
     
    246243    bool mStartPaused;
    247244    BOOL mTeleporterEnabled;
    248     FaultToleranceState_T mEnmFaultToleranceState;
    249245
    250246    /* array of progress objects for hard disk reset operations */
     
    21672163            return setError(VBOX_E_INVALID_VM_STATE, tr("Cannot power down at this point in a live snapshot"));
    21682164
    2169         /* Try cancel the FT sync. */
    2170         case MachineState_FaultTolerantSyncing:
    2171             if (!mptrCancelableProgress.isNull())
    2172             {
    2173                 HRESULT hrc = mptrCancelableProgress->Cancel();
    2174                 if (SUCCEEDED(hrc))
    2175                     break;
    2176             }
    2177             return setError(VBOX_E_INVALID_VM_STATE, tr("Cannot power down at this point in a fault tolerant sync"));
    2178 
    21792165        /* extra nice error message for a common case */
    21802166        case MachineState_Saved:
     
    71817167        case VMSTATE_RUNNING:
    71827168        case VMSTATE_RUNNING_LS:
    7183         case VMSTATE_RUNNING_FT:
    71847169        case VMSTATE_RESETTING:
    71857170        case VMSTATE_RESETTING_LS:
     
    76547639#endif
    76557640
    7656         /* test the FaultToleranceState property  */
    7657         FaultToleranceState_T enmFaultToleranceState;
    7658         rc = mMachine->COMGETTER(FaultToleranceState)(&enmFaultToleranceState);
    7659         if (FAILED(rc))
    7660             throw rc;
    7661         BOOL fFaultToleranceSyncEnabled = (enmFaultToleranceState == FaultToleranceState_Standby);
    7662 
    76637641        /* Create a progress object to track progress of this operation. Must
    76647642         * be done as early as possible (together with BeginPowerUp()) as this
     
    76717649        else if (fTeleporterEnabled)
    76727650            progressDesc = tr("Teleporting virtual machine");
    7673         else if (fFaultToleranceSyncEnabled)
    7674             progressDesc = tr("Fault Tolerance syncing of remote virtual machine");
    76757651        else
    76767652            progressDesc = tr("Starting virtual machine");
     
    77527728            catch (std::bad_alloc &) { throw rc = E_OUTOFMEMORY; }
    77537729        task->mTeleporterEnabled = fTeleporterEnabled;
    7754         task->mEnmFaultToleranceState = enmFaultToleranceState;
    77557730
    77567731        /* Reset differencing hard disks for which autoReset is true,
     
    78937868        }
    78947869        else if (   mMachineState == MachineState_Saved
    7895                  || (!fTeleporterEnabled && !fFaultToleranceSyncEnabled))
     7870                 || !fTeleporterEnabled)
    78967871        {
    78977872            rc = pPowerupProgress->init(static_cast<IConsole *>(this),
     
    79077882                                        10   /* ulTotalOperationsWeight */,
    79087883                                        Bstr(tr("Teleporting virtual machine")).raw(),
    7909                                         1    /* ulFirstOperationWeight */);
    7910         }
    7911         else if (fFaultToleranceSyncEnabled)
    7912         {
    7913             rc = pPowerupProgress->init(static_cast<IConsole *>(this),
    7914                                         progressDesc.raw(),
    7915                                         TRUE /* aCancelable */,
    7916                                         3    /* cOperations */,
    7917                                         10   /* ulTotalOperationsWeight */,
    7918                                         Bstr(tr("Fault Tolerance syncing of remote virtual machine")).raw(),
    79197884                                        1    /* ulFirstOperationWeight */);
    79207885        }
     
    80217986        else if (fTeleporterEnabled)
    80227987            i_setMachineState(MachineState_TeleportingIn);
    8023         else if (enmFaultToleranceState == FaultToleranceState_Standby)
    8024             i_setMachineState(MachineState_FaultTolerantSyncing);
    80257988        else
    80267989            i_setMachineState(MachineState_Starting);
     
    81218084              || mMachineState == MachineState_Restoring
    81228085              || mMachineState == MachineState_TeleportingPausedVM
    8123               || mMachineState == MachineState_FaultTolerantSyncing
    81248086              || mMachineState == MachineState_TeleportingIn
    81258087              , ("Invalid machine state: %s\n", Global::stringifyMachineState(mMachineState)));
     
    81368098        && (   mMachineState == MachineState_Starting
    81378099            || mMachineState == MachineState_Restoring
    8138             || mMachineState == MachineState_FaultTolerantSyncing
    81398100            || mMachineState == MachineState_TeleportingIn)
    81408101       )
     
    81558116        && mMachineState != MachineState_TeleportingIn
    81568117        && mMachineState != MachineState_TeleportingPausedVM
    8157         && mMachineState != MachineState_FaultTolerantSyncing
    81588118       )
    81598119        i_setMachineState(MachineState_Stopping);
     
    89828942                && that->mMachineState != MachineState_Restoring
    89838943                && that->mMachineState != MachineState_TeleportingIn
    8984                 && that->mMachineState != MachineState_FaultTolerantSyncing
    89858944                && that->mMachineState != MachineState_TeleportingPausedVM
    89868945                && !that->mVMIsAlreadyPoweringOff
     
    91089067                    that->i_setMachineState(MachineState_Teleported);
    91099068                    break;
    9110                 case MachineState_FaultTolerantSyncing:
    9111                     /* Fault tolerant sync failed or was canceled.  Back to powered off. */
    9112                     that->i_setMachineState(MachineState_PoweredOff);
    9113                     break;
    91149069            }
    91159070            break;
     
    91539108                case MachineState_Stopping:
    91549109                case MachineState_TeleportingIn:
    9155                 case MachineState_FaultTolerantSyncing:
    91569110                case MachineState_OnlineSnapshotting:
    91579111                    /* The worker thread handles the transition. */
     
    92059159        {
    92069160            if (   enmOldState == VMSTATE_POWERING_ON
    9207                 || enmOldState == VMSTATE_RESUMING
    9208                 || enmOldState == VMSTATE_RUNNING_FT)
     9161                || enmOldState == VMSTATE_RESUMING)
    92099162            {
    92109163                AutoWriteLock alock(that COMMA_LOCKVAL_SRC_POS);
     
    92219174                               || that->mMachineState == MachineState_Saving
    92229175                              )
    9223                            && enmOldState == VMSTATE_RESUMING)
    9224                        || (   that->mMachineState == MachineState_FaultTolerantSyncing
    9225                            && enmOldState == VMSTATE_RUNNING_FT));
     9176                           && enmOldState == VMSTATE_RESUMING));
    92269177
    92279178                that->i_setMachineState(MachineState_Running);
     
    92349185            AssertMsg(   that->mMachineState == MachineState_LiveSnapshotting
    92359186                      || that->mMachineState == MachineState_Teleporting,
    9236                       ("%s/%s -> %s\n", Global::stringifyMachineState(that->mMachineState),
    9237                       VMR3GetStateName(enmOldState), VMR3GetStateName(enmState) ));
    9238             break;
    9239 
    9240         case VMSTATE_RUNNING_FT:
    9241             AssertMsg(that->mMachineState == MachineState_FaultTolerantSyncing,
    92429187                      ("%s/%s -> %s\n", Global::stringifyMachineState(that->mMachineState),
    92439188                      VMR3GetStateName(enmOldState), VMR3GetStateName(enmState) ));
     
    1021010155}
    1021110156
    10212 /**
    10213  * Progress cancelation callback for fault tolerance VM poweron
    10214  */
    10215 static void faultToleranceProgressCancelCallback(void *pvUser)
    10216 {
    10217     PUVM pUVM = (PUVM)pvUser;
    10218 
    10219     if (pUVM)
    10220         FTMR3CancelStandby(pUVM);
    10221 }
    1022210157
    1022310158/**
     
    1029210227         *       SessionMachine::i_setMachineState() when the VM is powered down.
    1029310228         */
    10294         if (    !pTask->mTeleporterEnabled
    10295             &&  pTask->mEnmFaultToleranceState != FaultToleranceState_Standby)
     10229        if (!pTask->mTeleporterEnabled)
    1029610230        {
    1029710231            rc = pConsole->mControl->LockMedia();
     
    1051610450                        pConsole->mptrExtPackManager->i_callAllVmPowerOffHooks(pConsole, pVM);
    1051710451#endif
    10518                     }
    10519                 }
    10520                 else if (pTask->mEnmFaultToleranceState != FaultToleranceState_Inactive)
    10521                 {
    10522                     /*
    10523                      * Get the config.
    10524                      */
    10525                     ULONG uPort;
    10526                     rc = pMachine->COMGETTER(FaultTolerancePort)(&uPort);
    10527                     if (SUCCEEDED(rc))
    10528                     {
    10529                         ULONG uInterval;
    10530                         rc = pMachine->COMGETTER(FaultToleranceSyncInterval)(&uInterval);
    10531                         if (SUCCEEDED(rc))
    10532                         {
    10533                             Bstr bstrAddress;
    10534                             rc = pMachine->COMGETTER(FaultToleranceAddress)(bstrAddress.asOutParam());
    10535                             if (SUCCEEDED(rc))
    10536                             {
    10537                                 Bstr bstrPassword;
    10538                                 rc = pMachine->COMGETTER(FaultTolerancePassword)(bstrPassword.asOutParam());
    10539                                 if (SUCCEEDED(rc))
    10540                                 {
    10541                                     if (pTask->mProgress->i_setCancelCallback(faultToleranceProgressCancelCallback,
    10542                                                                               pConsole->mpUVM))
    10543                                     {
    10544                                         if (SUCCEEDED(rc))
    10545                                         {
    10546                                             Utf8Str strAddress(bstrAddress);
    10547                                             const char *pszAddress = strAddress.isEmpty() ? NULL : strAddress.c_str();
    10548                                             Utf8Str strPassword(bstrPassword);
    10549                                             const char *pszPassword = strPassword.isEmpty() ? NULL : strPassword.c_str();
    10550 
    10551                                             /* Power on the FT enabled VM. */
    10552 #ifdef VBOX_WITH_EXTPACK
    10553                                             vrc = pConsole->mptrExtPackManager->i_callAllVmPowerOnHooks(pConsole, pVM);
    10554 #endif
    10555                                             if (RT_SUCCESS(vrc))
    10556                                                 vrc = FTMR3PowerOn(pConsole->mpUVM,
    10557                                                                    pTask->mEnmFaultToleranceState == FaultToleranceState_Master /* fMaster */,
    10558                                                                    uInterval,
    10559                                                                    pszAddress,
    10560                                                                    uPort,
    10561                                                                    pszPassword);
    10562                                             AssertLogRelRC(vrc);
    10563                                         }
    10564                                         pTask->mProgress->i_setCancelCallback(NULL, NULL);
    10565                                     }
    10566                                     else
    10567                                         rc = E_FAIL;
    10568 
    10569                                 }
    10570                             }
    10571                         }
    1057210452                    }
    1057310453                }
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