VirtualBox

Opened 8 years ago

Closed 7 years ago

#16074 closed defect (fixed)

stateFile reference in vbox file corrupted upon moving VM

Reported by: Wouter Kariboe Owned by:
Component: VMM Version: VirtualBox 5.1.6
Keywords: move; snapshot; stateFile Cc:
Guest type: all Host type: Windows

Description

When I use the VirtualBox GUI to move a VM having a live snapshot, the stateFile reference in the vbox file gets corrupted:

"Snapshots/filename.sav" becomes "Snapshots/filename.sav/Snapshots/filename.sav".

This quickly results in the VM not starting any more.

VirtualBox versions tested: 5.0.26 and 5.1.6

Host: Windows 7x64

Guest: any

Steps (all done via the VirtualBox GUI (except the vbox file copies via Windows Explorer):

  1. Create a new VM in an existing group. For instance: a Debian 64-bit VM called Deb in a group called Microsoft, accepting all defaults.
  2. Start the VM, boot from an installation iso and let the VM run for a few moments. (E.g. debian-8.6.0-amd64-kde-CD-1.iso almost instantly settles at its boot menu.)
  3. Take a (live) snapshot of the VM called Snapshot 1.
  4. Close the VM, selecting "Power off the machine" and "Restore current snapshot 'Snapshot 1'".

Resulting snapshot tree: "Snapshot 1" -> "Current State (changed)".

[Actually the creation of "Current State (changed)" here might be the result of another bug, but that's probably another matter.]

  1. Using Windows Explorer, copy Deb.vbox to Deb1.vbox.
  2. Drag the VM to another group, e.g. "Linux".
  3. Copy Deb.vbox to Deb2.vbox.
  4. Start the VM. It is restored correctly at the point it was stopped (e.g. Debian's boot menu).
  5. Close the VM, again selecting "Power off..." and "Restore ... 'Snapshot 1'".
  6. Copy Deb.vbox to Deb3.vbox.
  7. Start the VM. The VM aborts almost immediately, and a dialog box pops up, stating:
VirtualBox - Error
Failed to open a session for the virtual machine Deb.
Details:
The VM session was closed before any attempt to power it on.
Result Code: 
E_FAIL (0x80004005)
Component: 
SessionMachine
Interface: 
ISession {7844aa05-b02e-4cdd-a04f-ade4a762e6b7}

VBox.log provides the following error messages:

ERROR [COM]: aRC=VBOX_E_FILE_ERROR (0x80bb0004) aIID={872da645-4a9b-1727-bee2-5585105b9eed} aComponent={ConsoleWrap} aText={VM cannot start because the saved state file 'Z:\VM\VirtualBox\Machines\Linux\Deb\Snapshots\2016-10-17T12-48-59-752997200Z.sav\Snapshots\2016-10-17T12-48-59-752997200Z.sav' is invalid (VERR_PATH_NOT_FOUND). Delete the saved state prior to starting the VM}, preserve=false aResultDetail=0
GUI: Aborting startup due to power up issue detected...

Note that Deb2.vbox (which was saved immediately after the VM was moved), already contains the invalid path in the snapshot definition:

    <Snapshot uuid="{12ae5280-3c84-409c-a9eb-03266b75b4e0}" name="Snapshot 1" timeStamp="2016-10-17T12:48:59Z" stateFile="Snapshots/2016-10-17T12-48-59-752997200Z.sav/Snapshots/2016-10-17T12-48-59-752997200Z.sav">

However, the machine state's stateFile is still correct (which is why the VM can still run successfully):

  <Machine uuid="{4091a06e-3382-47c8-a46d-3f2efa978a8d}" name="Deb" OSType="Debian_64" stateFile="Snapshots/2016-10-17T12-48-59-752997200Z.sav" currentSnapshot="{12ae5280-3c84-409c-a9eb-03266b75b4e0}" snapshotFolder="Snapshots" lastStateChange="2016-10-17T12:49:25Z">

However, in Deb3.vbox, saved after the first ("successful") run after the move, the machine state has also become corrupted:

  <Machine uuid="{4091a06e-3382-47c8-a46d-3f2efa978a8d}" name="Deb" OSType="Debian_64" stateFile="Snapshots/2016-10-17T12-48-59-752997200Z.sav/Snapshots/2016-10-17T12-48-59-752997200Z.sav" currentSnapshot="{12ae5280-3c84-409c-a9eb-03266b75b4e0}" snapshotFolder="Snapshots" currentStateModified="false" lastStateChange="2016-10-17T12:48:59Z">

This explains why the VM doesn't start any more.

Things get even worse if I then move the VM back to its original (or any other?) location: stateFile then becomes a quadrupled path:

"Snapshots/filename.sav/Snapshots/filename.sav/Snapshots/filename.sav/Snapshots/filename.sav"

Attachments (4)

Deb1.vbox (5.7 KB ) - added by Wouter Kariboe 8 years ago.
vbox file before moving VM
Deb2.vbox (5.7 KB ) - added by Wouter Kariboe 8 years ago.
vbox file immediately after moving VM
Deb3.vbox (5.8 KB ) - added by Wouter Kariboe 8 years ago.
vbox file after running moved VM
VBox.log (1.2 KB ) - added by Wouter Kariboe 8 years ago.
Log file of session that "failed to open"

Download all attachments as: .zip

Change History (7)

by Wouter Kariboe, 8 years ago

Attachment: Deb1.vbox added

vbox file before moving VM

by Wouter Kariboe, 8 years ago

Attachment: Deb2.vbox added

vbox file immediately after moving VM

by Wouter Kariboe, 8 years ago

Attachment: Deb3.vbox added

vbox file after running moved VM

by Wouter Kariboe, 8 years ago

Attachment: VBox.log added

Log file of session that "failed to open"

comment:1 by Frank Mehnert, 7 years ago

Same problem as in #16745. Will be fixed in 5.1.24. The most recent 5.1.x test builds (>=115382) contain the fix as well.

comment:2 by Frank Mehnert, 7 years ago

Fix is part of 5.1.24.

comment:3 by Frank Mehnert, 7 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.

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