Commit Graph

97 Commits

Author SHA1 Message Date
David Anderson e0f418dbf7 - client: eliminate spurious "unparsed XML" messages
Fixes #664.  Rom, please backport to 6.2
- web: convert some tr() to tra() on BOINC web pages

svn path=/trunk/boinc/; revision=15258
2008-05-20 00:11:28 +00:00
David Anderson db4164daba - Client (Windows) change the way core/app shmem segs are created.
Old: get_shmem_seg_name() tries names of the form shm_boinc_N
        until it finds one for which creating succeeds.
        Then it detaches (deletes) the segment and records the name.
        Later, the segment is created again.
        This creates a race condition if two core clients
        are running on the same host.
        It's also kind of silly.
    New: get_shmem_seg_name() doesn't detach the segment,
        and we dont have to create it again later.

svn path=/trunk/boinc/; revision=15172
2008-05-11 23:11:16 +00:00
David Anderson d2a02a5184 - client and server: in coprocessor records, change "name" to "type"
to avoid confusion with "name" field of CUDA.
    This is a bug fix - please port.
- start script: don't error out if run_state.xml file is empty
    (which happens if project runs out of disk space)

svn path=/trunk/boinc/; revision=15168
2008-05-09 20:54:52 +00:00
David Anderson 9aa348660c - client: added some file_xfer_debug messages for file upload
svn path=/trunk/boinc/; revision=15144
2008-05-07 23:14:26 +00:00
David Anderson 58645a3be1 - client (Unix): linking libcudart.so wasn't working,
so CUDA detection failed.
    For reasons I don't understand,
    adding "/usr/local/cuda/lib" to LD_LIBRARY_PATH
    and then doing dlopen("libcudart.so") wasn't working,
    even though the library is in that dir.
    I worked around this by calling
    dlopen("/usr/local/cuda/lib/libcudart.so") and if that fails call
    dlopen("libcudart.so"),
- Unix: commented out Eric's setenv() stuff.
    After doing a configure, HAVE_SETENV is not in config.h,
    so something's messed up with it.
- client: trimmed down "pre-release software" message


svn path=/trunk/boinc/; revision=15143
2008-05-07 21:46:49 +00:00
David Anderson 05f703559f - scheduler: add preliminary support for "job size matching"
(attempt to send big jobs to fast hosts, small jobs to slow hosts).
    - have "census" compute mean/stdev of host speeds,
        write it to a file perf_info.txt
    - have feeder compute mean/stdev of sizes of jobs in shmem
    - have feeder read perf_info.txt into shmem
- scheduler: add some debugging messages for app version selection
- Add LGPL license to a few files
- upgrade/setup scripts: copy census to bin/


svn path=/trunk/boinc/; revision=15136
2008-05-06 19:53:49 +00:00
David Anderson a454147cbd - client: fix array size
svn path=/trunk/boinc/; revision=15072
2008-04-21 20:22:33 +00:00
David Anderson ff70bf259e - client: use symlinks only if project has <use_symlinks/> element.
- API: fixed boinc_resolve_filename() bug: didn't work right for symlinks

svn path=/trunk/boinc/; revision=15043
2008-04-14 04:04:45 +00:00
David Anderson 64d7e70ddd - client (Unix): don't follow symbolic links when
computing directory size.
    This will avoid counting the size of executables and input files
    in slot directories.

svn path=/trunk/boinc/; revision=14995
2008-04-01 21:10:03 +00:00
David Anderson 9fa202d8f0 - client: add coprocessor support: i.e., parse the list of coprocs
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
2008-04-01 15:08:47 +00:00
David Anderson a0759e33de - scheduler: fix crash bug
svn path=/trunk/boinc/; revision=14979
2008-03-28 19:35:00 +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 5805d5f13a - web: minor code cleanup
svn path=/trunk/boinc/; revision=14854
2008-03-06 00:40:48 +00:00
David Anderson 86857a5452 - Scheduler: fix bugs in work assignment feature
svn path=/trunk/boinc/; revision=14810
2008-02-27 22:26:37 +00:00
David Anderson 35dab13859 - client code: my next-to-last checkin was flawed
svn path=/trunk/boinc/; revision=14725
2008-02-12 20:33:05 +00:00
David Anderson 51286a03dc - Initial checkin of Bossa code
svn path=/trunk/boinc/; revision=14716
2008-02-11 23:38:31 +00:00
David Anderson f77420c2c0 - scheduler: do "careful update" of workunit.hr_class
in case someone else changed since we read it.
    Hopefully this will fix a race condition
    where WU results get sent to different HR classes.
    (Alternatively we could use transactions,
    or acquire the semaphore during read/update,
    but this could impact performance).

svn path=/trunk/boinc/; revision=14710
2008-02-08 17:20:09 +00:00
David Anderson d2a0353a00 - manager: fix unix build (new file)
svn path=/trunk/boinc/; revision=14658
2008-01-31 23:43:37 +00:00
David Anderson ebed572d4f - API: allow Win apps to have icon
svn path=/trunk/boinc/; revision=14625
2008-01-28 15:48:09 +00:00
David Anderson 50151b1886 - scheduler: if get request w/o host ID,
use most recently created host with same domain name,
    IP addr, OS name, and CPU model, if one exists.
    (from Kevin Reed)

svn path=/trunk/boinc/; revision=14597
2008-01-18 20:29:53 +00:00
David Anderson cf4e42b4a3 - client: restore proper sense of --check_all_logins
(should this be set by default?)
- web: removed addslashes() when building language translation arrays.
    These caused 's to be displayed as \' everywhere.
    They may serve some purpose, but I can't think of what it is.
- web: changed max profile image dimensions from 800x600 to 640x480.
    The new profile page puts a column to the right
    of the image, so it shouldn't be quite that wide.

svn path=/trunk/boinc/; revision=14562
2008-01-15 22:22:08 +00:00
David Anderson fd80e135a0 - client: don't count header in bytes_xferred for file uploads
(this causes confusing output in the Manager,
    bytes xferred greater than file size)
- API and client: make boinc_sleep() work regardless of signals
- some code cleanup in http_curl.C

svn path=/trunk/boinc/; revision=14522
2008-01-10 23:27:42 +00:00
David Anderson 55c0ee22a0 - web: default for user_links() is to not show profile pic.
Show the pic only in the context of friends list.

svn path=/trunk/boinc/; revision=14444
2007-12-27 18:37:22 +00:00
David Anderson 2cd5dba886 Bolt stuff
svn path=/trunk/boinc/; revision=14395
2007-12-18 21:48:36 +00:00
David Anderson 3f41f9a88d - Add weak account key mechanism.
Each account has an associated weak account key.
    The user can see it by visiting weak_auth.php.
    If you put the weak account key in the account file on a computer
    (instead of the regular account key)
    the computer will attach to the account.
    But the weak account key cannot be used to log in
    to the account on the web, or to do web RPCs, or anything else.

    Note: this involves a scheduler change.

svn path=/trunk/boinc/; revision=14367
2007-12-07 23:23:25 +00:00
David Anderson cea8e84c7b - ops: in team import script, send email to team founder
when creating team
- web: if user changes email addr, clear email_validated

svn path=/trunk/boinc/; revision=14353
2007-12-04 22:16:37 +00:00
David Anderson 68ec6e6ce6 svn path=/trunk/boinc/; revision=14319 2007-11-29 02:56:10 +00:00
David Anderson 8097ddefe4 - user web: change Team page:
- add more info about team message board (if it exists)
    - show list of admins
    - show list of new members (in last 24 hours)
    - show number of members total, with credit, and with average credit
    - move actual list of members to new page (team_members.php)

svn path=/trunk/boinc/; revision=14230
2007-11-16 20:43:07 +00:00
David Anderson c35f02e868 - user web: add a general-purpose user search mechanism.
This lets you lookup up users sorted by
        - descending join time
        - descending total credit, or
        - descending RAC
    and lets you filter them by
        - country
        - presence/absence of team
        - presence/absence of profile
    It's implemented in such a way that no more than N
    DB rows are examined
    (i.e. it doesn't necessarily show you all the results)
- PHP database: add enum_fields() member to DbConn and BoincUser.
    This is to select a limited number of fields
    e.g. to make large queries more efficient.
    Also added BoincTeam::lookup_id_cache(); this is an example
    of how to look up items likely to be repeated
    (like teams when you're showing a list of users)

svn path=/trunk/boinc/; revision=14082
2007-11-05 23:55:33 +00:00
David Anderson 87c0f98b10 - user web: a private message is considered "read" the
first time it's shown.
        No explicit "mark as read" action needed.
        Also, no confirmation for message delete.

svn path=/trunk/boinc/; revision=14077
2007-11-03 04:26:47 +00:00
David Anderson 618a5c1651 - assimilator: there was a bug in the situation where:
1) a WU is marked as ready for assimilation and has no errors;
    2) it has no canonical result
    In this case, the assimilate handler gets called anyway,
    typically with the canonical result of the previous WU as arg.
    Note: this situation doesn't arise normally;
    it might happen if some results are deleted accidentally.
    The fix: 
    - identify this situation, and set the WU.error_mask to a new code
        (WU_ERROR_NO_CANONICAL_RESULT)
    - zero out the "canonical_result" variable passed to the handler,
        so even if the handler fails to check wu.error_mask,
        at least it won't assimilate the same result twice.
    Thanks to Hendrik Verhoek for finding this bug.
- DB schema: team table type is MyISAM, not InnoDB

svn path=/trunk/boinc/; revision=13938
2007-10-23 17:11:56 +00:00
David Anderson 1239291e44 - client: add <active_task_state> to <active_task> elements in state file.
These are needed by some 3rd-party software that uses
    the state file instead of GUI RPCs


svn path=/trunk/boinc/; revision=13921
2007-10-21 20:54:24 +00:00
David Anderson 094eb0095e - Bossa:
JSON-encode stuff
    use text instead of varchar(255) a couple of places
    create Bossa class for utility functions

svn path=/trunk/boinc/; revision=13908
2007-10-18 21:43:25 +00:00
David Anderson 452ae11337 - API: handle wacky values in worker_thread_ru:
- check for infinity/NaN
    - check for CPU time decreasing
    - check for CPU time increasing faster than real time
    ... and deal with each of these in a hopefully reasonable way

svn path=/trunk/boinc/; revision=13847
2007-10-12 23:12:50 +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 aadcc979cd - client: first pass at fixing a fundamental design flaw:
there's a single GUI_HTTP object,
    and it works only if used sequentially,
    i.e. an op is started only after the previous one ends.
    This breaks if a GUI RPC triggerse and op while
    a project-list fetch (initiated by the client itself) is in progress.
    Or if two managers are connected at the same time,
    and both do HTTP ops.
    The solution: have a separate GUI_HTTP object for each GUI_RPC_CONN,
    and an additional one for use by the client itself.

svn path=/trunk/boinc/; revision=13692
2007-09-27 21:03:15 +00:00
David Anderson 0a48da269d - API: initialize backwards_compatible_graphics to true.
NOTE: as of this checkin, applications built with the API
code in the trunk are assumed to do V6-type graphics.
If your app doesn't, then you must set
backwards_compatible_graphics to false
(and use boinc_init_graphics_options())


svn path=/trunk/boinc/; revision=13675
2007-09-26 17:06:50 +00:00
David Anderson 0248d4e016 - stripcharts: fix typo that could cause disk to fill up!
(from Nicolas Maire)

svn path=/trunk/boinc/; revision=13660
2007-09-25 21:51:35 +00:00
David Anderson 227f9e6dd4 - use safe_strcpy() instead of strcpy() in a few places
in the client and db_dump
- scheduler: change REQ_FILE_PREFIX to use ../ instead of /tmp/
                 

svn path=/trunk/boinc/; revision=13646
2007-09-24 22:57:00 +00:00
David Anderson 513fa98c55 - user web: add links to BOINC-wide team sites
and www.boincteams.com from Team management page
- client: change error strings from, e.g.,
    "system chown" to "chown() failed"

svn path=/trunk/boinc/; revision=13644
2007-09-24 20:13:38 +00:00
David Anderson bc5b979afb - Added new script "update_versions_v6"; use this instead of
update_versions to add version 6 apps.
    It looks for API_VERSION string in main executable,
    adds the API version to the app_version XML,
    and sets min_core_version to 6 for version 6+ apps
- API: include API_VERSION string
- convert tabs to spaces here and there
- scheduler: parse unused elements in <net_stats>
- ops/show_log.php: if no URL args, just show form (fixes #415)
- client: parse and store api_version (not used yet)

svn path=/trunk/boinc/; revision=13627
2007-09-21 18:10:54 +00:00
David Anderson 0505c15ec8 - boinc_cmd: improve output of --help
- scheduler: remove giant log output when use <workload_sim>
- db_purge: fix crash if nothing logged

svn path=/trunk/boinc/; revision=13556
2007-09-08 21:34:20 +00:00
David Anderson c99833a7c9 - scheduler: don't show resource share in msgs in cases where
it's not used.
- db_purge: add "no_archive" option

svn path=/trunk/boinc/; revision=13430
2007-08-21 20:07:50 +00:00
David Anderson 3990e817e3 - add support for "BOINC teams" (to be explained later)
svn path=/trunk/boinc/; revision=13218
2007-07-25 20:58:36 +00:00
David Anderson ef247eed41 - user web: moved functions to send specific messages out of email.inc
- user web: code cleanup involving team founder transfer,
    and improved the text of some messages

svn path=/trunk/boinc/; revision=13210
2007-07-23 20:30:30 +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 c38c8fc4df - sample app: adapt the one from boinc_samples
svn path=/trunk/boinc/; revision=13199
2007-07-20 18:47:52 +00:00
David Anderson 2d74b133a1 - scheduler: move startup checks (stop_sched, shmem) inside FCGI loop.
Hopefully this will make it feasible to run scheduler
    even when project is down.
- lib: fix cygwin build error

svn path=/trunk/boinc/; revision=13172
2007-07-17 20:34:37 +00:00
David Anderson 79adf59f98 - client: if can't write state file, don't immediately exit,
but don't do anything other than handle GUI RPCs.
    After 50 secs, print an "about to exit" message.
    After 60 seconds, exit

svn path=/trunk/boinc/; revision=13162
2007-07-16 20:30:21 +00:00
David Anderson 6285969149 - client: if CA bundle file isn't in BOINC directory,
don't tell Curl to look for it there.
        It might be in the default place where Curl looks.

svn path=/trunk/boinc/; revision=13150
2007-07-13 17:25:47 +00:00