Commit Graph

105 Commits

Author SHA1 Message Date
David Anderson 3a530a4c34 - client: check return value of the function (statfs or statvfs)
used to find disk space and usage.
    This may be failing for in-memory filesystems on Linux.
2013-03-05 15:05:29 +01:00
David Anderson 72368a6b20 - A first attempt to fix the bug where apps die with exit(1)
(whereas they didn't do this w/ older clients).
    On Windows, the client uses TerminateProcess(h, 1) to kill processes;
    the 1 is the exit code the process will appear to have.

    So instead, add a "will_restart" bool arg to the various kill
    functions, and if set use 0 (= STATUS_SUCCESS),
    otherwise use EXIT_ABORTED_BY_CLIENT.

    Note: in principle this shouldn't make any difference
    for quitting tasks,
    since handle_exited_app() checks for task state QUIT_PENDING
    and ignores the exit code in that case.
    The only place I can see where it would make any difference
    is when we kill a process because it hasn't been handling
    queued shared-memory messages for 180 seconds.

- client: add more info to the message about an exited app

- client: function return values (ERR_*) are different from
    process exit codes (EXIT_*).
    But in many places we were using return values as exit codes.
    Fix these.
    Also, break out the different types of limits a job can exceed
    (time, disk, memory) into difference exit codes.


svn path=/trunk/boinc/; revision=25601
2012-04-26 05:28:45 +00:00
David Anderson 24761958fd - client/server: estimate FLOPS for NVIDIA GPUs with
compute capability 3.x.
    Not sure if the parameters are right
    (128 cores/proc, 2 flops/clock)
    but they're better than nothing.
- web: don't allow user names that have leading or trailing white space,
    or HTML tags, or are empty


svn path=/trunk/boinc/; revision=25485
2012-03-24 06:31:03 +00:00
David Anderson 739f40c4f7 - client: HTTP range request errors are permanent.
svn path=/trunk/boinc/; revision=25213
2012-02-07 07:58:08 +00:00
David Anderson b169e5ab0f - server programs: print error message instead of numeric retval
in log messages

svn path=/trunk/boinc/; revision=22647
2010-11-08 17:51:57 +00:00
David Anderson 7a7cf4f5e7 - client, Unix: error checking in reading /proc entries.
Avoid garbage values e.g. of working_set_size
- scheduler: message tweaks

svn path=/trunk/boinc/; revision=21591
2010-05-20 17:50:00 +00:00
David Anderson 833f417ae5 - client: better behavior if a GPU goes away:
1) if an APP_VERSION is missing a coprocessor,
        don't delete it and its files.
        (If the coprocessor returns, we won't need to re-download)
    2) if a RESULT uses an app version that is missing a coprocessor,
        abort it (rather than deleting it).
        The client will report the result on the next scheduler RPC,
        and the server will make a new instance.

svn path=/trunk/boinc/; revision=19235
2009-10-02 23:39:38 +00:00
David Anderson feab684b3d - client: abort jobs that are unstarted and past deadline
- client: abort runaway jobs based on elapsed time instead of CPU time.
    Specifically, abort jobs for which
    elapsed time > WU.rsc_fpops_bound / app_version.flops
    This policy works for
    1) GPU jobs (which may use little CPU time)
    2) jobs that run but because of bugs use little CPU time
        (e.g., because they're sleeping)
    whereas the old policy didn't.

svn path=/trunk/boinc/; revision=17399
2009-02-26 17:51:38 +00:00
David Anderson 3e98909ab6 - client: adjust debts at least every minute.
This fixes a bug that can cause debts to NEVER get updated.
- client: added "abort_jobs_on_exit" feature
    (available by --abort_jobs_on_exit cmdline
    or <abort_jobs_on_exit> in cc_config.xml).
    If set, when the client is exited by user request
    (this includes signals on Unix)
    it marks all pending jobs as aborted,
    and does a scheduler RPC to all projects with jobs.
    When these are completed the client exits.
    This is useful when BOINC is being used on grids
    where it is wiped clean after each run.

svn path=/trunk/boinc/; revision=17300
2009-02-18 19:47:02 +00:00
David Anderson 1260dad4f1 - lib: check return values of RSA_*() functions.
Also fix a memory leak, missing RSA_free().
    Fixes #823.

svn path=/trunk/boinc/; revision=16883
2009-01-12 16:36:14 +00:00
David Anderson 4f66bb4c95 - added copyright and license info to .C, .cpp, .h files
- scheduler: fix bug in adaptive replication:
    if send an unreplicated job to untrusted host,
    set both wu.target_nresults and wu.min_quorum to app.target_nresults.

svn path=/trunk/boinc/; revision=15762
2008-08-06 18:36:30 +00:00
David Anderson 796a8ef835 - change EXIT_ABORTED_VIA_GUI to EXIT_ABORTED_BY_CLIENT
- change ERR_CHILD_FAILED TO EXIT_CHILD_FAILED
    (it's an exit code, not a function error code)
- client: reduce severity of benchmark error
- scheduler: compile fix

svn path=/trunk/boinc/; revision=15423
2008-06-18 16:43:05 +00:00
David Anderson 13400c9516 Changes for multithread app support:
- update_versions: use __ (not :) as separator for plan class
- client: add plan_class to APP_VERSION;
    an app version is now identified by platform/version/plan_class
- client CPU scheduler: don't assume apps use 1 CPU
- client: add avg_ncpus, max_cpus, flops, cmdline to RESULT
- scheduler: implement app planning scheme

Other changes:

- client: if symlink() fails, make a XML soft link instead
    (for Unix running off a FAT32 FS)
- client: don't accept nonpositive resource share from AMS
- daemons and DB: check for error returns from enumerations,
    and exit if so.  Thus, if the MySQL server goes down,
    all the daemons will soon exit.
    The cron script will restart them every 5 min,
    so when the DB server comes back up so will the project.
- web: show empty max CPU % as ---
- API: get rid of all_threads_cpu_time option (always the case now)


svn path=/trunk/boinc/; revision=14966
2008-03-27 18:25:29 +00:00
David Anderson 6ba8928537 - client (Unix): use symbolic links instead of XML link files.
This will allow applications to access shared libraries
    by their logical names,
    which simplifies things when you have multiple platforms,
    and the apps (or libraries) refer to shared libraries
    by names that don't include the platform.
    This shouldn't impact the API - boinc_resolve_filename()
    will open the file, see that it's not an XML link file,
    and the symbolic link will be used directly.
    At some point we can change boinc_resolve_filename() on Unix
    to be a no-op if the client is 6.2+
- client (Unix):
    Append the slot dir to LD_LIBRARY_PATH.

svn path=/trunk/boinc/; revision=14944
2008-03-19 16:54:36 +00:00
David Anderson 4e3764df34 - server: debugged single-job submission feature.
It works, at least in my test case.
- boinc_submit script:
    show status every 10 seconds until completed
    add --wait option to show status for previous submission
- Added get_logical_name() in validate_util.C
- create_work: change default target_nresults from 5 to 2,
    max_error_results from 10 to 3,
    max_total_results from 20 to 10,
    max_success_results from 10 to 6
- boinc_cmd: show full usage if no args
- project setup: copy single_job_assimilator

svn path=/trunk/boinc/; revision=14847
2008-03-05 20:16:10 +00:00
Frank Thomas fbcfeaf456 - Removed the svn:executable property from files that should not be executable,
like source code and text files. I skipped to check most files in html/
  and mac_*/ though.
- Added svn:executable to tools/watch_tcp because it has a shebang.


svn path=/trunk/boinc/; revision=13819
2007-10-10 09:25:40 +00:00
Frank Thomas 3bfc78b511 Updated the postal address of the Free Software Foundation in all license headers. See http://lists.ssl.berkeley.edu/pipermail/boinc_dev/2007-October/008939.html for reference.
svn path=/trunk/boinc/; revision=13804
2007-10-09 11:35:47 +00:00
David Anderson d302a5e107 - client/manager/API: code cleanup to disentangle sandbox code from lib/.
- 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
2007-10-05 16:47:07 +00:00
David Anderson c148085143 - Manager: change "Retry communications" to "Do network communication"
- client: use gethostname() to get host name on Linux

svn path=/trunk/boinc/; revision=13295
2007-08-11 03:34:38 +00:00
David Anderson aefd2d4c88 - client: add mechanism to abort results if they get > 100
"premature exits" (exit(0) without finish file) between checkpoints


svn path=/trunk/boinc/; revision=13207
2007-07-20 23:42:20 +00:00
David Anderson 1411e4c003 *** empty log message ***
svn path=/trunk/boinc/; revision=12324
2007-04-05 23:15:20 +00:00
David Anderson 138f17af40 *** empty log message ***
svn path=/trunk/boinc/; revision=12216
2007-03-13 19:33:27 +00:00
David Anderson 5c9df1a27f *** empty log message ***
svn path=/trunk/boinc/; revision=11863
2007-01-15 21:22:23 +00:00
David Anderson 420e00f137 *** empty log message ***
svn path=/trunk/boinc/; revision=11860
2007-01-15 19:25:23 +00:00
David Anderson 017927ba8c *** empty log message ***
svn path=/trunk/boinc/; revision=11700
2006-12-19 20:49:12 +00:00
David Anderson 02bb061b6d *** empty log message ***
svn path=/trunk/boinc/; revision=11117
2006-09-06 20:56:55 +00:00
David Anderson 7ce1144b73 *** empty log message ***
svn path=/trunk/boinc/; revision=11076
2006-09-01 21:06:30 +00:00
David Anderson 366c9f272c *** empty log message ***
svn path=/trunk/boinc/; revision=11048
2006-08-31 18:31:28 +00:00
David Anderson 2d93dda176 *** empty log message ***
svn path=/trunk/boinc/; revision=10896
2006-08-11 22:56:41 +00:00
David Anderson 29f8c9a47c *** empty log message ***
svn path=/trunk/boinc/; revision=10894
2006-08-11 17:58:48 +00:00
David Anderson f5ce6cacff sandbox
svn path=/trunk/boinc/; revision=10310
2006-06-12 04:05:10 +00:00
David Anderson 8b53c08ffb *** empty log message ***
svn path=/trunk/boinc/; revision=10290
2006-06-09 22:53:24 +00:00
David Anderson e811df5409 server can request result abort
svn path=/trunk/boinc/; revision=10202
2006-05-25 20:10:08 +00:00
Rom Walton aad7a928b2 *** empty log message ***
svn path=/trunk/boinc/; revision=10113
2006-05-08 18:35:56 +00:00
David Anderson 12807ea755 avoid dup project names
svn path=/trunk/boinc/; revision=9618
2006-03-07 23:21:30 +00:00
David Anderson ba9ba5ff01 proxy download bug
svn path=/trunk/boinc/; revision=9263
2006-01-18 22:12:55 +00:00
David Anderson ba23e3be09 state file update atomicity
svn path=/trunk/boinc/; revision=9115
2005-12-22 00:55:15 +00:00
David Anderson 86855fc26d *** empty log message ***
svn path=/trunk/boinc/; revision=9068
2005-12-14 23:43:50 +00:00
Rom Walton 73d0447876 *** empty log message ***
svn path=/trunk/boinc/; revision=8245
2005-09-28 11:59:34 +00:00
David Anderson 7c716dc8db attach project poll RPC
svn path=/trunk/boinc/; revision=7296
2005-08-13 03:19:22 +00:00
David Anderson b3dc4bcbe4 new account setup
svn path=/trunk/boinc/; revision=7205
2005-08-07 01:33:15 +00:00
David Anderson 3ad888e260 new account setup support
svn path=/trunk/boinc/; revision=7194
2005-08-05 22:00:19 +00:00
David Anderson 114cb732d1 *** empty log message ***
svn path=/trunk/boinc/; revision=6493
2005-06-29 06:14:35 +00:00
David Anderson 2b8eba0a80 *** empty log message ***
svn path=/trunk/boinc/; revision=6427
2005-06-24 08:12:11 +00:00
Bruce Allen 0082092c0b Added a utility function to 'print' a text description of errors
in error_numbers.h.  In the future, when adding a new error number
to this file, please update boincerror() in util.C to contain a
short text description of the error.

svn path=/trunk/boinc/; revision=5996
2005-05-01 13:03:18 +00:00
David Anderson 64b871f819 *** empty log message ***
svn path=/trunk/boinc/; revision=5962
2005-04-28 23:19:58 +00:00
David Anderson 1b0439c9a9 *** empty log message ***
svn path=/trunk/boinc/; revision=5840
2005-04-12 21:54:40 +00:00
David Anderson cd1dccd849 *** empty log message ***
svn path=/trunk/boinc/; revision=5813
2005-04-08 23:40:50 +00:00
David Anderson 981799643c *** empty log message ***
svn path=/trunk/boinc/; revision=5284
2005-02-02 22:58:46 +00:00
David Anderson 0d6f6d66fb *** empty log message ***
svn path=/trunk/boinc/; revision=5198
2005-01-24 22:13:32 +00:00