VirtualBox

Changeset 108318 in vbox


Ignore:
Timestamp:
Feb 20, 2025 5:50:24 PM (2 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167662
Message:

Main/MachineImplMoveVM: After a successful invocation of
IMachine::moveTo() VBoxSVC would trigger the following assert in
Machine::uninit(): 'Assert(!uRegistryNeedsSaving);'. This was due to a
mistake in MachineMoveVM::i_MoveVMThreadTask() which incorrectly marked
the Machine's registry as modified (i_markRegistryModified()) but then
called VirtualBox::i_saveSettings() which clears the VirtualBox
registry's (i_unmarkRegistryModified(i_getGlobalRegistryId())) modified
state. This left the Machine registry in a modified state as indicated
by uRegistryNeedsSaving=1. Since nothing cleared the Machine registry's
modified state Machine::uninit() correctly asserted to point out the
oversight. Fixed by marking the global VirtualBox registry as modified
instead of the Machine's registry.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-server/MachineImplMoveVM.cpp

    r108317 r108318  
    931931
    932932        /* Marks the global registry for uuid as modified */
    933         Guid uuid = machine->mData->mUuid;
     933        Guid uuid = machine->mParent->i_getGlobalRegistryId();
    934934        machine->mParent->i_markRegistryModified(uuid);
    935935
     
    10621062                AutoWriteLock  srcLock(machine COMMA_LOCKVAL_SRC_POS);
    10631063                srcLock.release();
    1064                 Guid uuid = machine->mData->mUuid;
     1064                Guid uuid = machine->mParent->i_getGlobalRegistryId();
    10651065                machine->mParent->i_markRegistryModified(uuid);
    10661066                srcLock.acquire();
Note: See TracChangeset for help on using the changeset viewer.

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