Commit Graph

137 Commits

Author SHA1 Message Date
Rom Walton 2ea0d42755 VBOX: Cleanup the boundary between what is hypervisor specific and what is generic. 2013-11-20 08:42:54 -05:00
Rom Walton 2e680b7541 VBOX: Another fix 2013-11-15 00:06:08 -05:00
Rom Walton 061f05da28 VBOX: Another fix. 2013-11-15 00:02:30 -05:00
Rom Walton 3ad98e171a VBOX: Language cleanup 2013-11-14 23:57:15 -05:00
Rom Walton 2f6b63cd8f VBOX: Log a detection entry if vboxwrapper needed to configure the environment to handle BOINC running as a service/daemon. 2013-11-13 15:27:55 -05:00
Rom Walton 88436195d9 VBOX: Fix the trickle up mechanism. 2013-11-09 10:16:44 -05:00
Rom Walton b83f6e4549 VBOX: Add logging in case of a trickle-up failure. 2013-11-07 22:47:44 -05:00
Rom Walton 2d781448cd VBOX: Use the same technique for calculating when to report a trickle as we use for performing checkpoints.
Deleting previous checkpoints take progressively longer the longer the VM has been running.  The previous method just added 1 second of elapsed time to a variable instead of the real amount of wall clock time to the variable.
2013-11-06 18:14:04 -05:00
Rom Walton 9f7fafa1f3 VBOX: Add a trickle-up status report entry to stderr.txt every time we send a trickle event. 2013-11-06 15:45:58 -05:00
Rom Walton 8f11da3bc3 VBOX: Add VirtualBox 4.3.0 to bad builds list. 2013-11-06 15:42:21 -05:00
Rom Walton 3484d1b110 VBOX: Add 4.2.18 to the incompatible list 2013-10-03 13:19:46 -04:00
Rom Walton f318ee9959 VBOX: Add code to vboxwrapper to bubble up out of memory errors for guest VM applications to the server. 2013-10-03 12:59:04 -04:00
Rom Walton 440dafed46 VBOX: Re-enable vm image selection. (use command line instead of job file) 2013-09-28 13:07:24 -04:00
Rom Walton 37db65907c VBOX: Base the VM name on the MD5 hash of the result name instead of the slot id. 2013-09-20 11:18:41 -04:00
Rom Walton 4820cb5436 VBOX: Make sure the startup banner and feature dump happen after the boinc_init_options call so that stderr is redirected. 2013-09-20 10:09:14 -04:00
Rom Walton 2e701bafe6 VBOX: Base the VM name off of the slot directory ID to prevent path length errors on Windows for projects with really long task names. Set the description of the VM to the task name. 2013-09-18 14:45:52 -04:00
Rom Walton 84b5162d2d VBOX: Be more specific on the reason for the VirtualBox not being ready. It was a long time between incidents in dealing with a Linux kernel upgrade and the need to recompile the VirtualBox drivers. Vboxwrapper properly put the task into a waiting mode but the status message in the manager didn't give the right kind of hint as to the problem. 2013-08-21 12:39:37 -04:00
Rom Walton 655fd5e429 VBOX: Fix trickle-up message passing. (From: Christian Beer) 2013-08-19 13:05:57 -04:00
Rom Walton d0c765b101 VBOX: When running a 32-bit vboxwrapper on a 64-bit Windows machine, exit with a temporary error suggesting that the volunteer upgrade to a 64-bit BOINC client. 32-bit vboxwrapper cannot detect VirtualBox on a 64-bit system. 2013-08-13 00:26:12 -04:00
David Anderson 439299d7b3 sample apps: include <cmath> instead of <math.h> 2013-05-28 12:00:39 -07:00
Charlie Fenton fc0e6d20a0 VBOX: a value of 0 in <cpu_usage_limit> means "no limit", so set it to 100 if it is 0. 2013-05-06 01:06:08 -07:00
Charlie Fenton 99c0b80b96 VBoxWrapper: Balance braces because unbalanced braces confuse Xcode's text editor. 2013-05-06 00:47:50 -07:00
Rom Walton b6ab8718ee VBOX: Adjust the failsafe minimum CPU Usage value to 1. The VM should eventually boot. 2013-05-01 14:01:06 -04:00
Rom Walton b90297021c VBOX: Update project files 2013-05-01 11:38:24 -04:00
Rom Walton d291c59d6c VBOX: Fix version check so that it can work with RPM based distros of Linux.
VBOX: Adjust the set_cpu_usage() and set_network_usage() function prototypes to use ints and handle the preference conversion in the calling function.
VBOX: Set the minimum CPU usage value to 5%, if for some reason somebody chooses 0% (on purpose or bug) VirtualBox goes nuts.  This should give the VM at least enough time to render a few frames and eventually boot.
2013-05-01 11:27:04 -04:00
Rom Walton 2871721c90 VBOX: Add some text to atderr about the incompatible version of VirtualBox. 2013-04-24 15:05:32 -04:00
Rom Walton b19d1ea85f VBOX: Start keeping track on incompatible versions of VirtualBox.
Set the temporary exit delay to one day if an incompatible version is detected.  This gives the volunteer a chance to take corrective action before the task errors out after it exceeds its deadline.
2013-04-24 15:03:26 -04:00
Rom Walton 56974bff70 VBOX: If Detection of VirtualBox fails, declare it a temporary failure and reschedule after 24-hours.
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.
2013-03-04 17:39:23 +01:00
Rom Walton 78ed97fd84 Fix build break 2013-03-04 17:24:19 +01:00
Rom Walton cfca0d215e - VBOX: Record what version of VirtualBox was used, as well as whether
anonymous platform was specified for the project.
2013-03-04 17:24:19 +01:00
Rom Walton 1915da2e64 - VBOX: Initialize the PATH variable before attempting to check to see if
the system is ready.
2013-03-04 17:21:32 +01:00
Rom Walton 27557feae1 - VBOX: Perform a quick check that the wrapper can communicate with
vboxsvc via vboxmanage before attempting anything else.  If it
        fails, get BOINC to reschedule task execution in 5 minutes.
2013-03-04 17:19:40 +01:00
Rom Walton 6b7190c0eb Line ending changes 2013-03-04 17:12:12 +01:00
Rom Walton 474b9a4f37 - VBOX: Fix build break introduced by the previous vbox commit. 2013-03-04 15:23:39 +01:00
Rom Walton e693e2df09 - VBOX: Add the ability to read a fraction done file from the shared
directory.  Use the same semantics as the regular wrapper.
2013-03-04 15:23:38 +01:00
Rom Walton 43c55fd34b - VBOX: Add the ability to specify both the type and model of disk
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.
2013-03-04 14:59:23 +01:00
Rom Walton 3eaaea887a - VBOX: Ugh, if sleep_time is greater than zero, increment elapsed_time by the poll interval. 2013-03-01 16:23:13 +01:00
Rom Walton edfa1deae1 - VBOX: Do not count the sleep time as part of the elapsed time when the VM is supposed to be suspended. 2013-03-01 16:23:13 +01:00
Rom Walton 527cf846b8 - VBOX: Make deleting a snapshot a non-terminal event.
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.
2013-03-01 16:08:53 +01:00
Rom Walton db00158cb0 - VBOX: Increase elapsed_time if we were forced to sleep after executing the main loop 2013-03-01 16:08:52 +01:00
Rom Walton 14948c99f6 VBOX: Change the way elapsed_time is calculated in vboxwrapper.
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.
2013-03-01 16:05:09 +01:00
Rom Walton e613459377 - VBOX: Do not perform the hardware virtualization check when the
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
2012-08-03 16:24:12 +00:00
Charlie Fenton cc3942131e VBOX: Fix Mac compiler warnings
svn path=/trunk/boinc/; revision=25698
2012-05-19 01:12:33 +00:00
David Anderson c8c85f4a75 - vboxwrapper: don't run headful if client is sandboxed (it won't work).
svn path=/trunk/boinc/; revision=25695
2012-05-18 18:24:58 +00:00
David Anderson b2a4cd4d91 svn path=/trunk/boinc/; revision=25691 2012-05-18 17:38:16 +00:00
David Anderson f022b566de - Win compile fixes
svn path=/trunk/boinc/; revision=25665
2012-05-09 20:06:54 +00:00
Rom Walton fc818a027f - VBOX: Detect another form of out of memory error from VirtualBox.
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
2012-03-22 18:10:42 +00:00
Rom Walton f7e7a065de - VBOX: Introduce the use of VM snapshots as a form of checkpoint.
- 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
2012-03-21 20:03:47 +00:00
Rom Walton 7bbdb288ed Quick Updates
svn path=/trunk/boinc/; revision=25464
2012-03-20 18:25:43 +00:00
Rom Walton 5972bf2c8f - VBOX: On successful completion, create the same output file that
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
2012-03-20 18:19:56 +00:00