then all the deregister commands have to be optional. Go ahead and log errors
to stderr but continue to run through the various commands anyway.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=24860
vboxwrapper. Not doing so leaves the drive reference around and the VM in a
saved state. The next attempt to delete it from another instance of
vboxwrapper fails with a complaint about the old unnamed vm(all files have
been cleaned up by BOINC) being in an non-mutable state.
samples/vboxwrapper/
vbox.cpp
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=24859
are looking at the existing state of the host.
- VBOX: Reset the output buffer for every command execution.
- VBOX: Remove the teleporting and snapshotting states from the list of running
states.
- VBOX: Remove the '--type floppy' typo when mounting the floppy disk image.
samples/vboxwrapper/
vbox.cpp, .h
svn path=/trunk/boinc/; revision=24858
Some more work will be required if there is ever a need for more than
one port. But this should work for now. This should successfully
handle running multiple instances of the same job, port information is
stored in a file called "vbox_firewall.txt" which is updated for each
execution of the wrapper.
samples/vboxwrapper/
vbox.cpp, .h
vboxwrapper.cpp
win_build/
vboxwrapper.vcproj
svn path=/trunk/boinc/; revision=24843
wall clock time a VM is allowed, if exceeded shutdown gracefully and tell
BOINC that the job is finished.
samples/vboxwrapper/
vbox.cpp, .h
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=24837
registered with VirtualBox during the RegisterVM phase. If we detect the
already exists error message run the unsupported internal command to reset
the HD UUID which then allows us to attach the HD to the VM. This should allow
us to run multiple jobs with the same base VM HD image.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=24822
reduce backoff intervals somewhat
- vboxwrapper: fix buffer size typo (from Attila)
- scheduler: fix crash if using homogeneous app version,
and a WU is committed to an old or deprecated app version.
From Kevin Reed.
svn path=/trunk/boinc/; revision=24775
in a loop. If so, terminate the process and return an error to the calling
function.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=24767
the root configuration file when the client is NOT in sandbox mode.
Doing so could cause confusion if the volunteer uses VirtualBox for
any of their own work. If BOINC started up first it would have appeared
that their own VM's no longer existed.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=24449
<boinc_data_dir>/projects/virtualbox so that the virtualbox configuration
can remain consistent across one or more projects.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=24380
- VBOX: Add some suggestions to the source on how to debug VM related issues.
- VBOX: Add a quick sanity check when the enable_shared_directory option is
enabled.
samples/vboxwrapper/
vbox.cpp, .h
vboxwrapper.cpp
svn path=/trunk/boinc/; revision=24203
the docs say, if the buffer isn't large enough VboxManage hangs attempting to
write the VM log file to it. Luckly the VM log file is only 64k.
- VBOX: Fix a couple of parsing errors.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=24201
add a mechanism so that apps can report sub-processes
that are not descendants (e.g., virtual machines)
These processes are then counted as part of the app,
not as "non-BOINC CPU time".
This fixes a bug where processing was incorrectly suspended
because CPU usage by VM apps exceeded the "CPU usage limit" pref.
Implementation:
- the PIDs of the processes in question
are passed from app to client via shared-memory,
in the app_status channel.
A new variant of boinc_report_app_status() supports this.
- the VBox wrapper queries the PID of the VM,
and reports it in this way.
- procinfo_app() includes a new argument: a list of PIDs
that are part of the app, although not ancestrally
related to the main process.
- in the client, ACTIVE_TASK now includes a vector "other_pids".
If this is nonempty, it's passed to procinfo_app().
svn path=/trunk/boinc/; revision=24123
try and avoid permission errors on multiple platforms when BOINC
is installed as a daemon.
samples/vboxwrapper/
vbox.cpp
svn path=/trunk/boinc/; revision=24100
Current: wrapper reports frequent checkpointing to client,
but actually checkpoints only when the VM is stopped
Problem: large amounts of work would be wasted if
BOINC stops in an ungraceful way (e.g., power failure)
Solution:
Don't report frequent checkpointing.
Every CPU scheduling period (typically once/hour)
stop the VM (creating a checkpoint)
and call boinc_temporary_exit(0).
If the client wants to keep running this job,
it will start us immediately.
svn path=/trunk/boinc/; revision=24068
- change names of CPU and network-limiting functions
to express their units (always do this).
- wrapper monitors status.suspend_network
and suspends/resumes network accordingly
- wrapper sets CPU and network bandwidth limits on startup
(Rom: should this be done before run() rather than after?)
Note: App versions using this wrapper should always have
<dont_throttle/> in their version.xml,
to tell the client that the app throttles itself.
svn path=/trunk/boinc/; revision=24054
reporting incremental runtime exery x seconds of runtime.
- client: more XML parsing cleanup
- credit trickle handler: do sanity checks on CPU speed
svn path=/trunk/boinc/; revision=24017
Additionally, the VM can be throttled by parsing in the wrapper the <max_vm_cpu_pct> specific project preference.
svn path=/trunk/boinc/; revision=23976
- vbox wrapper: on startup, rename image file to "vm_image_SLOT.vdi",
where SLOT is the slot number.
Vbox requires unique names for VM image files.
svn path=/trunk/boinc/; revision=23930
The new VirtualBox 4.1 supports VBoxManage unregisterVM in all the platforms. There was a bug that didn't allow to run that
command to remove the VM, affecting only Windows 64 bits, but this new version has fixed it.
svn path=/trunk/boinc/; revision=23883
get a bunch of flicking windows when we preform and operation against
VirtualBox.
samples/vboxwrapper/
vbox.cpp,
svn path=/trunk/boinc/; revision=23501
and is_registered functions using the vboxmanage app.
- VBOX: Simplify the virtualbox_vbm_popen function and remove a buffer
copy operation.
samples/vboxwrapper/
vbox.cpp, .h
svn path=/trunk/boinc/; revision=23483
CERN). Where possible stick with the POSIX API set and remove Windows
specific code. (Example vbm_popen).
NOTE: Not usable at the moment.
samples/vboxwrapper/cernvm
cernvmwrapper.cpp
samples/vboxwrapper/
vbox.cpp, .h
vboxwrapper.cpp
samples/vboxwrapper/
vm.cpp, .h
win_build/
vboxwrapper.vcproj
svn path=/trunk/boinc/; revision=23458
VM has been running since the last state change, we'll use that
instead.
- vboxwrapper: provide basic stub functions for starting/stopping/
suspending/resuming a VM. Leave wrapper functionality in
vboxwrapper, and VM specific functionality in vbox_*. Ideally
only the stub functions would have to change for other VM
implementations.
samples/vboxwrapper/
vbox.cpp, .h
vbox_win.cpp
vboxwrapper.cpp
win_build/
vboxwrapper.vcproj
svn path=/trunk/boinc/; revision=22753
API set. Use the existing wrapper as the baseline. Current
wrapper just dumps the existing VMs defined on the machine.
More to follow.
samples/vboxwrapper/mscom/
VirtualBox.h
VirtualBox.tlb
VirtualBox_i.c
samples/vboxwrapper/
vbox.h
vbox_win.cpp
vboxwrapper.cpp
win_build/
boinc.sln
vboxwrapper.vcproj
svn path=/trunk/boinc/; revision=22745