6.10 and older do not detect if VirtualBox has been installed. If a VM job is assigned to a host running on an old client and the wrapper detects VirtualBox is not installed reschedule the job for execution at a later date. This prevents the client from requesting excessive amounts of work which will all fail. Eventually the job will error out when it passes its deadline.
HOME environment variable is missing. Without the HOME environment
variable VirtualBox attempts to write log files and other state
information in root's home directory.
controller to use. It can be specified by adding the following
tags to vbox_job.xml:
<vm_disk_controller_type></vm_disk_controller_type>
<vm_disk_controller_model></vm_disk_controller_model>
Executing vboxmanage --help will list the available options in the
storeagectl section.
Deleting stale snapshots now consists of enumerating the existing
snapshots and deleting all but the most recent snapshot. This fixes
the problem where, for one reason or another, a snapshot could not
be deleted at one point in time. The wrapper would just continue to
create new ones and was unable to successfully deal with the older
ones. Disk space would eventually run out.
VirtualBox 4.2 no longer requires certain commands to be executed
to unregister a VM while older versions do. Just ignore any error
codes, if it becomes a problem we can always make it conditional
on what version of VirtualBox is installed.
Previously: elapsed_time was just incremented with the value of the polling
period each iteraction through the main loop. This introduced issues
when vboxmanage lagged for whatever reason. This lag could go as high as 5
seconds. Over the timespan of a day this could increase the wall clock time
of a task a great deal.
Now: elapsed_time is incremented with the time it took to execute the main
loop.
guest VM is 64-bit. 64-bit guest vms require hardware virtualization
and should fail without it.
- VBOX: Implement the <copy_to_shared/> directive in the vbox_job.xml file.
if <copy_to_shared>init_data.xml</copy_to_shared> is set, the wrapper will
copy the init_data.xml file to the shared directory before the VM is launched.
svn path=/trunk/boinc/; revision=25973
new port number to work with convert it from network byte order
(big endian) to the host byte order (little endian on x86/x64 processors).
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=25671
to delete stale snapshots. Slower machines can take longer than
45 seconds to complete the deletion of old snapshots.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=25474
Reschedule the job for some time in the future when there might
be enough memory.
- VBOX: Resume the VM's execution after the creation of the snapshot
but before we attempt to delete the previous, now stale, snapshot.
- VBOX: Treat the 'livesnapshotting', 'deletingsnapshotlive', and
'deletingsnapshotlivepaused' states as online states.
samples/vboxwrapper/
vbox.cpp
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=25473
This changes the snapshot type from a live snapshot to an online
snapshot. Presumably difference might make it easier to do and
prevent the VM from asserting.
samples/vboxwrapper/
vbox.cpp, .h
svn path=/trunk/boinc/; revision=25472
- VBOX: Change the snapshot naming scheme by removing the quotes and
prefixing the checkpoint time with 'boinc_'. Hopefully this will
prevent the VM from asserting during the snapshot process.
samples/vboxwrapper/
vbox.cpp, .h
svn path=/trunk/boinc/; revision=25471
- Perform snapshots at most once every ten minutes.
- Client suspend/resume messages behave the same.
- Client no heartbeat/quit messages cause the wrapper to just
poweroff the VM.
On startup check to see if the last checkpoint time is greater than 0,
if so, start from the most recent snapshot.
- VBOX: If we receieve the status message of no heartbeat or quit, set
the temporary delay to 5 minutes. If the wrapper is terminated during
the middle of a snapshot, hopefully this will give VirtualBox enough
time to complete the snapshot. Restarting the BOINC job should then
poweroff the VM and restore from the last snapshot.
samples/vboxwrapper/
vbox.cpp, .h
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=25469
the CernVMWrapper would. This allows both wrapppers to work with
the same BOINC job generation system.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=25463
request was. Hopefully this will give us insight into whether
the core client is terminating the wrapper or something else is
going on.
- VBOX: Shorten the command execution timeout to 45 seconds.
- VBOX: Don't attempt to re-execute the close/savestate commands.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=25462
to a quit request. On older XP machines it might speed up the memory
dump to disk.
- client: Increase the quit request timeout from 10 seconds to 60 seconds for
machines running VMs and slow disk drives. It should give the VM enough
time to gracefully shutdown and not give boinc reason to kill the wrapper.
client/
app.h
samples/vboxwrapper/
vbox.cpp, .h
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=25433
before allowing another attempt to start the VM when the hypervisor
cannot allocate enough memory.
- VBOX: Print out a trace statement about the suspend/resume directive
from the vboxwrapper perspective. This in conjuction with the
BOINC API trace statements should provide a better idea with
what is going on.
samples/vboxwrapper
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=25424
temporarily exit so BOINC can reschedule it for a later time.
If the problem doesn't go away it'll just time out eventually anyway.
samples/vboxsamples/
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=25404