Errors when programmatically stopping Windows VMs on 6.1.28
Posted: 25. Oct 2021, 17:21
Since we have upgraded to 6.1.28, we have massive issues programmatically powering off headless Windows VMs running on a Linux host.
We have tried with both:
commands as well as hard stopping the vboxheadless process by ID:
When we do the former, we get errors like this:
In these cases, we were still able to restore and start the VM again.
In another case, the poweroff command did not return, and these were that last lines in the machine's log:
If we do the latter (hard stop via SIGINT), the VM gets locked in the "Stopping" state immediately.
Any action then fails with:
There is no process left for this machine, so the only way to get the machine back is to fully kill the VBoxSVC process (which kills other VMs as well).
We haven't had issues like this before at all (on 6.1.18).
I have downgraded VirtualBox to 6.1.24 and 6.1.26 and tested on both versions. The problem does not happen there.
So it must be related to the latest release 6.1.28.
Has anybody experienced the same?
I have analyzed the VBoxSVC log as well as the VM logs, there is not more information available than given here.
We have tried with both:
Code: Select all
controlvm <XYZ> poweroff
Code: Select all
kill -2 <PID>
Code: Select all
Failed to get a console object from the direct session (VBOX_E_INVALID_OBJECT_STATE)
VBoxManage: error: Details: code VBOX_E_VM_ERROR (0x80bb0003), component MachineWrap, interface IMachine, callee nsISupports
VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 388 of file VBoxManageControlVM.cp
In another case, the poweroff command did not return, and these were that last lines in the machine's log:
Code: Select all
00:03:18.324978 ************** End of Guest state at power off ***************
00:03:18.371894 Console: Machine state changed to 'Stopping'
00:03:18.372607 Console::powerDown(): A request to power off the VM has been issued (mMachineState=Stopping, InUninit=0)
00:03:18.396602 PDMR3PowerOff: 71 595 566 ns run time
00:03:18.396623 Changing the VM state from 'POWERING_OFF' to 'OFF'
00:03:18.396745 VMR3PowerOff:
00:03:18.396759 RUNNING -> POWERING_OFF, SUSPENDED -> POWERING_OFF, DEBUGGING -> POWERING_OFF, LOAD_FAILURE -> POWERING_OFF, GURU_MEDITATION -> POWERING_OFF, FATAL_ERROR -> POWERING_OFF, CREATED -> POWERING_OFF, RUNNING_LS -> POWERING_OFF_LS, DEBUGGING_LS -> POWERING_OFF_LS, GURU_MEDITATION_LS -> POWERING_OFF_LS, FATAL_ERROR_LS -> POWERING_OFF_LS failed, because the VM state is actually OFF
00:03:18.396832 VMSetError: /home/vbox/vbox-6.1.28/src/VBox/VMM/VMMR3/VM.cpp(3342) int vmR3TrySetState(PVM, const char*, unsigned int, ...); rc=VERR_VM_INVALID_VM_STATE
00:03:18.396845 VMSetError: VMR3PowerOff failed because the current VM state, OFF, was not found in the state transition table (old state FATAL_ERROR_LS)
00:03:18.399344 ERROR [COM]: aRC=VBOX_E_VM_ERROR (0x80bb0003) aIID={872da645-4a9b-1727-bee2-5585105b9eed} aComponent={ConsoleWrap} aText={Could not power off the machine. (Error: VERR_VM_INVALID_VM_STATE)}, preserve=false aResultDetail=-1907
Any action then fails with:
Code: Select all
vboxmanage snapshot "W7 Analyzer 1" restore "Current"
VBoxManage: error: Code NS_ERROR_FAILURE (0x80004005) - Operation failed (extended info not available)
VBoxManage: error: Context: "LockMachine(a->session, LockType_Shared)" at line 338 of file VBoxManageSnapshot.cpp
We haven't had issues like this before at all (on 6.1.18).
I have downgraded VirtualBox to 6.1.24 and 6.1.26 and tested on both versions. The problem does not happen there.
So it must be related to the latest release 6.1.28.
Has anybody experienced the same?
I have analyzed the VBoxSVC log as well as the VM logs, there is not more information available than given here.