- client: increase <abort> timeout from 5 sec to 60;
this gives the diagnostic system time to download
symbol files (which may be several MB) and write a stack trace.
svn path=/trunk/boinc/; revision=15162
and it doesn't do so within 10 seconds, kill it.
This deals with the situation where the app is ignoring messages
(e.g. because it forgot to end a critical section).
- client: if either the FP or int benchmark runs less than
3 CPU seconds (out of 10 seconds of wall time) ignore the benchmark.
This is an effort to deal with a problem where (for unknown reasons)
the int benchmark runs for a tiny amount of CPU time,
leading to an absurdly large result
- Manager: don't prepend "[error]" to MSG_INTERNAL_ERROR messages;
the client already does this.
THESE ARE ALL BUG FIXES
svn path=/trunk/boinc/; revision=15128
in <app_version>s from the server,
keep track of the number free of each type of coproc,
and don't run an app that needs more than are available.
(not quite working yet)
svn path=/trunk/boinc/; revision=14992
The design has been changed to constant #threads per app version
Various changes from Kevin Reed/WCG:
- server: add workunit.rsc_bandwidth_bound: if nonzero,
send this WU only to hosts with that much download bandwidth
- assimilators: if a handler returns DEFER_ASSIMILATION,
the WU remains in INIT state and will be handled when the
next instance completes.
Useful if you want the assimilator to see all instances.
- scheduler: when setting result.outcome = DETACHED,
set received_time to now
- scheduler: removed the reliable_time and reliable_min_avg_credit
options
- scheduler/web: add optional <allow_non_preferred_projects>
in project preferences.
If present, user will accept work from non-selected apps
if no work is available for selected apps
- scheduler: improved messages for projects with multiple apps
- scheduler: added config options
<granted_credit_weight> and <granted_credit_ramp_up>.
Used in calculating host.claimed_credit_per_cpu_sec,
but I'm not sure how.
- Added two new credit-granting formulas (validate_util.C):
stddev_credit() and two_credit()
- server DB: add rollback_transaction() and affected_rows() to DB_CONN
NOTE: DB update required
svn path=/trunk/boinc/; revision=14870
This is for debugging apps (currently works only in Unix).
What it does: when running an app,
the client does everything except actually fork/exec the app,
i.e. it sets up the slot dir, creates shared mem segment etc.
It then continues as if the app were actually running,
and you can then manually run your app under a debugger
in the slot directory.
Note: the client won't notice the termination of your app.
- API, Unix: in situations where the timer thread wants to exit
(e.g. it notices a missing heartbeat).
don't directly call boinc_exit(),
since this touches data structures that the worker thread
may be using concurrently.
Instead, set a flag telling the worker thread to call boinc_exit()
(which it will do from its signal handler)
This is an attempt to fix problems reported by Bernd;
I haven't tested it.
- scheduler: add config flag for uploading usage data
- web: show account key and weak account key on user page
- added some code for multithread support (not finished)
api/
boinc_api.C
svn path=/trunk/boinc/; revision=14542
error. 0xC0000142 means STATUS_DLL_INIT_FAILED which can happen
when an application attempts to create a new process while the OS
is shutting down, and when the desktop heap is fully utilized.
This will keep an app from erroring out during Vista's shutdown
sequence. Only a reboot can fix the desktop heap.
client/
app.h
app_control.C
svn path=/trunk/boinc/; revision=14080
- move client sandbox-specific code to a new file, sandbox.C
- remove g_use_sandbox from util.C; move to MainDocument.cpp (manager)
and sandbox.C (client)
- don't declare check_security() in util.h; it's not in util.C
- don't call remove_project_owned_file_or_dir() in
boinc_delete_file_aux() or boinc_rmdir();
rather, at the points in the client that delete
dirs that are usually owned by boinc_projects,
call remove_project_owned_file_or_dir() first,
then clean_out_dir().
- rename boinc_exec() to switcher_exec() and move it to sandbox.C
Note: this change was sparked by needing to remove a call to getgrnam()
from boinclib, to avoid requiring the same version of glibc
on both compile and target hosts
svn path=/trunk/boinc/; revision=13784
- client: parse <cpid_time> in scheduler reply;
add cpid_time field to PROJECT.
This defaults to the user_create_time.
In deciding which CPID to send in a scheduler request,
use the one with oldest cpid_time (not user_create_time).
This is the client half of fixing a bug that causes
CPID to flip/flop between to values in a certain case.
svn path=/trunk/boinc/; revision=13531
(e.g., to show BOINC error codes correctly)
- get_project_config.php: add an element that lists the
platforms supported by this project
(i.e. for which there's a non-deprecated app version)
Cache this info in a file (cache/platform_list.xml)
so that it will be available even when the project's DB is down.
- Rename sample_get_project_config.php to get_project_config.php;
a project should no longer need its own version of this file.
Change setup_project accordingly.
client/
app_control.C
html/user/
get_project_config.php (new)
sample_get_project_config.php (removed)
py/Boinc/
setup_project.py
svn path=/trunk/boinc/; revision=12814