Commit Graph

24932 Commits

Author SHA1 Message Date
David Anderson befb90f0d4 client: don't pass --device to GPU apps w/ API version >= 7.5
This addresses a problem w/ Bitcoin Utopia,
whose coprocessor app (run via the wrapper) doesn't expect a --device arg,
and fails if it gets one.
The --device mechanism has been superceded by APP_INIT_DATA.gpu_device_num.
GPU apps built with the current API and later should not expect a --device arg.
2014-07-30 13:16:42 -07:00
Charlie Fenton 6ba233e230 MGR: In Advanced Preferences dialog, adjust sizes of text edit controls and size of the dialog depending on font size. 2014-07-30 03:42:25 -07:00
Rom Walton 2a82894d55 BUILD: Re-enable the alpha/beta flag for the master branch. 2014-07-29 20:03:04 -04:00
David Anderson d43f78f97a vboxwrapper: compile fix, and error-check kill_program().
Note: utility functions like kill_program() should return
BOINC error codes, not Unix codes
2014-07-29 13:19:07 -07:00
David Anderson 09832f4335 update_versions: remove unused code 2014-07-29 11:28:13 -07:00
David Anderson 44906a92b4 update_versions: msg tweak 2014-07-29 11:26:06 -07:00
David Anderson 119962bc0f client: minor code shuffle 2014-07-29 11:14:10 -07:00
David Anderson fc87332a82 lib: remove unused code 2014-07-29 11:13:51 -07:00
David Anderson cd64b384da update_versions: version.xml can specify API version
Normally update_version gets the API version from the executable,
by scanning for the string API_VERSION.
However, if the project compresses executables this won't work.
So let it be specified in version.xml.
2014-07-29 11:11:48 -07:00
Rom Walton 5e588c4ad1 BUILD: Update the build numbers fr wrapper (26011) and vboxwrapper (26096) 2014-07-28 18:15:32 -04:00
Rom Walton 8384336a74 client: if execv ever fails when attempting to launch switcher, exit as quickly as possible in the forked process.
Returning from the switcher_exec() may leave 2 boinc processes running until one crashes.
2014-07-28 13:28:51 -04:00
David Anderson 7fb13c0eaf scheduler: use config.maintenance_delay instead of 3600 for client backoff
Use a configurable delay (default 3600) instead of hardwired 3600 if
- can't open database
- feeder not running
- shmem size inconsistency
- can't open log file
- can't parse config file
- can't find key file
- can't attach shmem
2014-07-28 09:00:14 -07:00
David Anderson ef83e5c2fc change CERN project URL 2014-07-28 08:59:56 -07:00
David Anderson 60140836b6 API: don't return error if trickle-up message is empty 2014-07-28 08:58:02 -07:00
Charlie Fenton 5cec137320 client: Fix use of pipes to redirect sdtout/stderr output from switcher and tweak reporting failures as task_debug output with msg_printf(). 2014-07-28 03:17:24 -07:00
Charlie Fenton 4344c391ba client: fix error reporting from kill_app_process() on non-Windows platforms when not sandboxed. 2014-07-28 03:15:28 -07:00
Charlie Fenton 2ad03b38f1 lib: fix compile break. 2014-07-28 03:09:40 -07:00
Rom Walton 1ae2a15873 client: Fix what is logged when kill_by_switcher() fails. 2014-07-28 01:27:52 -04:00
Rom Walton ea5dd29f97 client: Append the stdout and stderr buffer in switcher_exec in case the output is more than 1k. 2014-07-27 17:49:01 -04:00
Rom Walton debac23fa3 client: Use pipes to redirect sdtout/stderr output from switcher, report any failures as task_debug output with msg_printf(). 2014-07-27 16:30:02 -04:00
Rom Walton 3689d15294 client: Add missing stub functions for Windows related to removing the SANDBOX ifdef. 2014-07-27 14:19:17 -04:00
Rom Walton 9b07d17821 client: Use strerror() in kill_app_processes() on Windows instead of boincerror(). 2014-07-27 14:15:15 -04:00
Rom Walton 7a9b572fb5 VBOX: If the VM doesn't gracefully shutdown, attempt to terminate it. 2014-07-27 14:11:32 -04:00
Rom Walton 934c10d8e5 lib: Normalize 'int kill_program()' around the error codes returned by errno. 2014-07-27 14:10:48 -04:00
Rom Walton 37fd62bd95 client/lib: Refactor kill code for Windows. Expose functionality for wrapper apps. 2014-07-27 13:47:01 -04:00
Rom Walton 09985b0b62 client: Remove unneeded SANDBOX ifdefs. Use g_use_sandbox instead. I left one in main.cpp since I do not know where check_security() is. 2014-07-27 13:19:11 -04:00
Rom Walton 329b5a6ab6 client: Avoid needless error messages about kill failing. Only call kill_by_switcher() if we are running in sandbox mode, otherwise call kill. 2014-07-27 12:54:07 -04:00
Charlie Fenton 6c76387a14 client: In switcher, return the actual error code from execv (usually -1) rather than errno, and let the invoking call retrieve errno if appropriate (modify commit f014b0d). 2014-07-27 01:33:49 -07:00
David Anderson 3d447b02b6 scheduler: fix FCGI build 2014-07-26 10:25:59 -07:00
David Anderson 49c49c6db8 client: write log messages for trickle-ups (if <trickle_debug> set) 2014-07-25 17:08:31 -07:00
David Anderson 0eb346167a client: fix bug in last commit 2014-07-25 16:04:29 -07:00
David Anderson 34e97a5048 client: add <project_max_concurrent> option for app_config.xml
Lets you limit the number of running jobs over the whole project.
Note: this is not taken into account in work fetch.
2014-07-25 15:49:12 -07:00
David Anderson b3392bb195 scheduler: fix bug in plan class spec logic 2014-07-25 15:04:04 -07:00
David Anderson 89b51ea43d scheduler: preliminary support for generic coprocessors
A "generic" coprocessor is one that's reported by the client,
but's not of a type that the scheduler knows about (NVIDIA, AMD, Intel).

With this commit the following works:
- On the client, define a <coproc> in your cc_config.xml
  with a custom name, say 'miner_asic'.
- define a plan class such as
  <plan_class>
    <name>foobar</name>
    <gpu_type>miner_asic</gpu_type>
    <cpu_frac>0.5</cpu_frac>
  <plan_class>
- App versions of this plan class will be sent only to hosts
  that report a coproc of type "miner_asic".
  The <app_version>s in the scheduler reply will include
  a <coproc> element with the given name and count=1.
  This will cause the client (at least the current client)
  to run only one of these jobs at a time,
  and to schedule the CPU appropriately.

Note: there's a lot missing from this;
- app version FLOPS will be those of a CPU app;
- jobs will be sent only if CPU work is requested
... and many other things.
Fixing these issues requires a significant re-architecture of the scheduler,
in particular getting rid of the PROC_TYPE_* constants
and the associated arrays,
which hard-wire the 3 fixed GPU types.
2014-07-25 12:40:35 -07:00
David Anderson e6b7da8278 admin web: allow changing plan class of app versions 2014-07-25 12:11:23 -07:00
David Anderson aa04502db4 create_work: allow targeting commands in stdin job descriptions 2014-07-25 00:51:51 -07:00
David Anderson 16e45a1ddc Merge branch 'master' of ssh://boinc.berkeley.edu/boinc-v2 2014-07-24 23:43:06 -07:00
David Anderson b9f0fe0298 admin web: add "assigned jobs" link 2014-07-24 23:42:45 -07:00
Charlie Fenton fb66dd82ae client: try to get a return code from switcher (i.e., from the command that switcher executed.) 2014-07-24 02:39:17 -07:00
Charlie Fenton 99daa41445 client: attempt to get a more useful error message from kill_app_process() on non-Windows platforms. 2014-07-24 01:06:43 -07:00
Rom Walton f014b0d6da client: return a possible error code to the core client if execv fails for some reason in the switcher tool. 2014-07-24 00:31:57 -04:00
David Anderson 55a17c3b41 client: fix logic for cleaning up subsidiary processes
"Subsidiary processes" are
1) descendants
2) "other PIDs" as reported by the app, e.g. VMs which are not descendants
We were failing to clean up these processes in some cases.

- Add a function ACTIVE_TASK::kill_exited_app() for killing the
  subsidiary processes of a task whose main process has already exited.
  At this point we can't enumerate its current descendants;
  but we have the list of descendants from the last time
  we computed memory usage (within the last 10 sec).
  So kill this, and kill the other PIDs
- call this function when appropriate:
  - too many temporary exits
  - too many premature exits
  - main process has exited in response to abort or quit message
    (the existing code failed to kill other PIDs)
- rename ACTIVE_TASK::kill_task() to kill_running_task()
  to emphasize its intended use.

Also remove code that, in case of secure install on Windows,
didn't try to kill any subsidiary processes at all;
there used to be a permission problem in doing so, now there isn't.
2014-07-23 12:41:57 -07:00
David Anderson ae9c58e03d client: fix compile warnings 2014-07-23 12:41:41 -07:00
David Anderson dcb72145e1 client: fix compile warnings 2014-07-23 09:51:34 -07:00
David Anderson 3156ea56fd delete spammers script: fix --id_range command 2014-07-23 09:51:02 -07:00
Charlie Fenton 512e8e2cfe client: continue adding support for OpenCL devices (GPUs and accelerators) other than AMD/ATI, NVIDIA or Intel GPUs.
For now, handle AMD/ATI, NVIDIA or Intel GPUs as before.  But for other, "new" vendors, we treat each device as a separate resource, creating an entry for each instance in the COPROCS::coprocs[] array and copying the device name COPROC::opencl_prop.name into the COPROC::type field (instead of the vendor name.)
For devices from "new" vendors, set <gpu_type> field in init_data.xml file to the vendor string supplied by OpenCL.  This should allow boinc_get_opencl_ids() to work correctly with these "new" devices without modification.
2014-07-23 05:18:51 -07:00
David Anderson 191c7347e2 client: make it compile. Charlie, please change the commented-out lines 2014-07-22 13:02:43 -07:00
David Anderson 035541f7a7 scheduler: recent coproc changes caused crash; undo them 2014-07-22 09:13:29 -07:00
David Anderson 9d9f29f509 client: fix compile warning 2014-07-21 12:06:39 -07:00
David Anderson 8710b5e260 scheduler: when parsing trickle-ups, initialize "variety" field to empty
... otherwise can get garbage in that field if request doesn't include variety
2014-07-21 09:42:29 -07:00