Commit Graph

370 Commits

Author SHA1 Message Date
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 21cd3d3ffd Sample Graphics app: Switch from *.txf fonts to TrueType font
svn path=/trunk/boinc/; revision=25972
2012-08-03 12:11:27 +00:00
Charlie Fenton 15e46e7113 Sample Graphics app: Switch from *.txf fonts to TrueType fonts
svn path=/trunk/boinc/; revision=25968
2012-08-03 08:58:50 +00:00
Charlie Fenton f0ed936d47 Mac: Minor corrections to documentation and sample code
svn path=/trunk/boinc/; revision=25876
2012-07-17 11:22:05 +00:00
Charlie Fenton 17db492473 Mac: update sample code to allow building with Xcode 4.4 GM seed under OS 10.8 GM seed
svn path=/trunk/boinc/; revision=25867
2012-07-12 12:45:42 +00:00
Charlie Fenton d059de100f Mac: update sample code to allow building with Xcode 4.4 GM seed under OS 10.8 GM seed
svn path=/trunk/boinc/; revision=25866
2012-07-12 11:51:21 +00:00
Charlie Fenton 72007821b7 Mac: update sample code to allow building with Xcode 4.3 and to eliminate compiler warnings
svn path=/trunk/boinc/; revision=25862
2012-07-11 10:32:09 +00:00
David Anderson fc2af21221 - client: add missing end tag for <pci_info>. Doh!
- validator: add some sanity-checking for credit,
    to prevent granting 1e38 credit.
    max_granted_credit now defaults to the equivalent of 1 TeraFLOP-year.
    Instances that exceed this are not counted in the credit
    calculation, and a critical-mode log message is written
- wrapper: remove wall_cpu_time; not used anymore


svn path=/trunk/boinc/; revision=25825
2012-06-29 22:24:07 +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
Rom Walton 63483b5bb7 - VBOX: When the system confirms our port number request or assigns us a
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
2012-05-11 18:53:36 +00:00
David Anderson f022b566de - Win compile fixes
svn path=/trunk/boinc/; revision=25665
2012-05-09 20:06:54 +00:00
Wenjing Wu ccad62b912 - wrapper: when reading fraction-done file, read the last line
(or at least the last double).
    This accommodates a particular application (LAMMPS)
    that can only append to this file.
- CAS@home stuff


svn path=/trunk/boinc/; revision=25557
2012-04-13 09:44:01 +00:00
Rom Walton d2155c4488 - VBOX: Do not treat the timeout error as a fatal error when attempting
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
2012-03-22 19:00:37 +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 97fe7c2667 - VBOX: Before attempting to take the snapshot for a VM, pause it first.
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
2012-03-21 23:17:07 +00:00
Rom Walton 7710c0cfc8 - VBOX: We don't need to display the state of the VM before startup.
- 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
2012-03-21 22:13:06 +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
Rom Walton 64bdde4745 - VBOX: Make it explicily clear what the result of a start/stop
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
2012-03-20 17:55:56 +00:00
Rom Walton 25142dda02 - VBOX: Give the VM process a short priority boost when responding
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
2012-03-16 01:04:43 +00:00
Rom Walton a52651bf56 - VBOX: Use the boinc_temporary_exit API properly. Wait for 5 minutes
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
2012-03-14 18:54:03 +00:00
Charlie Fenton e46189a816 VBOX: Fix typo in Mac wrapper name (1686 -> i686)
svn path=/trunk/boinc/; revision=25412
2012-03-13 02:07:32 +00:00
Rom Walton f52ce7153e - VBOX: If a VM fails to start because the machine is low on memory,
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
2012-03-12 17:16:51 +00:00
Rom Walton 85fce1d29a - VBOX: Only attempt to reset throttle values if the VM is in
a running state, otherwise controlvm throws an error.
        
    samples/vboxsamples/
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25403
2012-03-12 15:45:09 +00:00
Rom Walton 8f8caec6e7 - VBOX: Allow the CPU execution cap to be set back to 100% after it had
alreadly been set lower.

    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25399
2012-03-09 22:56:19 +00:00
Rom Walton f2f9ec8dc3 - VBOX: Setting the CPU Execution Cap should be done with the controlvm
command after the VM has entered a running state instead of using
        modifyvm.
        
    samples/vboxwrapper/
        vbox.cpp

svn path=/trunk/boinc/; revision=25397
2012-03-09 19:53:34 +00:00
David Anderson dfacf7d1c1 - API: remove BOINC_STATUS::suspend_request;
it's an implementation thing, not intended for export.
    Fix a related bug.


svn path=/trunk/boinc/; revision=25396
2012-03-09 19:46:49 +00:00
Rom Walton 702c78d8c8 - VBOX: Parse the vboxmanage error code for *nix as well.
- VBOX: Switch to using status.suspend_request instead of status.suspend
        when determining when to suspend/resume a VM.  status.suspended is
        now only changed when direct_process_action is set to true.

    samples/vboxwrapper/
        vboxwrapper.cpp
        vbox.cpp

svn path=/trunk/boinc/; revision=25394
2012-03-09 03:05:48 +00:00
Rom Walton 8887a01904 Quick Updates
svn path=/trunk/boinc/; revision=25369
2012-03-02 19:17:12 +00:00
Rom Walton 2030f3ca23 - VBOX: Implement an exponential backoff scheme of sleeping between
commands if a session lock error has been detected.  Cap the overall
        delay to 30 seconds total for a single command.
    
        Experiments performed by jujube(T4T) suggest changing the sleep interval
        to an exponential style backoff would increase our chances of recovering in
        situations where the previous lock is held by a previous instance of
        vboxmanage whos instance data hasn't been cleaned up within vboxsvc yet.
    
    client/
        vbox.cpp

svn path=/trunk/boinc/; revision=25359
2012-03-01 04:23:08 +00:00
David Anderson 4a50b2b2e2 - wrapper: compute final CPU time correctly for multi-process apps
- storage stuff


svn path=/trunk/boinc/; revision=25356
2012-02-29 20:58:45 +00:00
Rom Walton 594ab7a80d - Vbox: Include date component in log messages to ease debugging long
running VM tasks.
        
    samples/vboxwrapper/
        vbox.cpp
        vboxwrapper.cpp, .h

svn path=/trunk/boinc/; revision=25308
2012-02-21 22:31:50 +00:00
Rom Walton 8397db8a9e - VBOX: Remove the renaming of the vm disk image code. It isn't needed
and it complicates things in the CC.
        
    samples/vboxwrapper/
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25220
2012-02-08 20:31:03 +00:00
Charlie Fenton 94b6094a35 VBOX: Fix compiler warnings on Mac
svn path=/trunk/boinc/; revision=25146
2012-01-25 09:09:35 +00:00
Rom Walton dbe896f3cb - VBOX: Fix build breaks for Linux and Mac.
samples/vboxwrapper/
        vbox.cpp

svn path=/trunk/boinc/; revision=25143
2012-01-24 23:36:10 +00:00
Rom Walton bd1d4e5fe8 - VBOX: Demote the priority level of the VM process to try and prevent
latency issues for volunteers.
    - VBOX: If the port forwarding preferred port isn't usable, try asking
        the OS for one.
    - VBOX: On a failure, get the VM process exit code and report it with
        the rest of the stderr spew.

    samples/vboxwrapper/
        vbox.cpp, .h
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25133
2012-01-24 04:13:00 +00:00
Rom Walton 5eb81e7311 - VBOX: Enable the wrapper to handle fractional CPU usage. If
the server specifies 1.1 CPUs used, allocate 2 CPUs to be used
        in VirtualBox.
        
    samples/vboxwrapper
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25119
2012-01-21 17:57:50 +00:00
Rom Walton d5327641fb - VBOX: Use the documented way to reset the UUID of a virtual hard
disk.  Thanks Daniel.
        
     samples/vboxwrapper
        vbox.cpp

svn path=/trunk/boinc/; revision=25102
2012-01-19 00:09:06 +00:00
Rom Walton f2ceca49c1 - VBOX: Fix another issue that was a result of Saturdays commit. Make
sure that the vm_name variable is populated with something useful if
        resuming from a different execution.
 
     samples/vboxwrapper
        vbox.cpp

svn path=/trunk/boinc/; revision=25098
2012-01-18 17:23:45 +00:00
Rom Walton bb448074b0 - VBOX: Fix a regression I introduced on Saturday, is_vm_registered shouldn't
be called when vm_name is empty.  Change it so that is references
        vm_master_name instead to get the correct name of the VM.
    - VBOX: Fix the logic that scan for the CR character and removes it.  Also fix
        the partial line inclusion when the various log files are greater than 16k.
        string.erase returns what the iterator value should be.
 
     samples/vboxwrapper
        vbox.cpp

svn path=/trunk/boinc/; revision=25086
2012-01-17 18:17:01 +00:00
Rom Walton 346eff699c - VBOX: Add User ID and Host ID to the CERN data format.
samples/vboxwrapper
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25068
2012-01-15 07:08:27 +00:00
Rom Walton 0c33c456ec - VBOX: Fix regression where the vm_name wasn't reset back to the
current wu name after deregistering a stale VM.

    samples/vboxwrapper
        vbox.cpp, .h
        vboxwrapper.cpp,

svn path=/trunk/boinc/; revision=25067
2012-01-15 04:35:13 +00:00
Rom Walton 5e0fbe8dc7 Quick Updates
svn path=/trunk/boinc/; revision=25047
2012-01-13 19:33:27 +00:00
David Anderson 81b29b0cc9 - API: fix queueing problem for graphics-related messages
(web graphics URL and remote desktop addr)
- GUI RPC and API:
    change "remote_desktop_connection" to "remote_desktop_addr" everywhere.
    It's an address, not a connection.
- vboxwrapper: log message cleanup


svn path=/trunk/boinc/; revision=25044
2012-01-13 19:00:16 +00:00
Rom Walton fda0d55ac2 Quick Updates
svn path=/trunk/boinc/; revision=25043
2012-01-13 16:03:23 +00:00
Rom Walton 97bdbee73e - VBOX: It helps to remove the older send msg routines. Oooops.
samples/vboxwrapper
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25042
2012-01-13 15:56:40 +00:00
Rom Walton ce4650ecbb - VBOX: Cleanup a few messages stating port numbers in the stderr spew.
- VBOX: Send configuration settings in one message instead of piece meal.
    
    api/
        boinc_api.cpp, .h
    samples/vboxwrapper
        vboxwrapper.cpp

svn path=/trunk/boinc/; revision=25041
2012-01-13 15:21:00 +00:00