Commit Graph

69 Commits

Author SHA1 Message Date
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
David Anderson bda30b3065 - added a stats site
- added return value for copy_stream()

svn path=/trunk/boinc/; revision=13133
2007-07-10 23:42:05 +00:00
David Anderson d07916ca51 - client: change order so that backoff because of no work
happens before server-requested backoff (eliminate double messages)

svn path=/trunk/boinc/; revision=13114
2007-07-06 21:58:32 +00:00
David Anderson 26a1c63b20 - feeder: add debugging feature:
if you send it a USR1 signal, it writes a summary
    of the shmem contents and HR state to the log file

svn path=/trunk/boinc/; revision=13107
2007-07-05 23:06:18 +00:00
David Anderson 0bbe224c21 - scheduler: the "max_wus_in_progress" option only worked if
"resend_lost_results" option was used also
    (because the count of in-progress results was
    based from the DB query used by resend_lost_results).

    Fix: initialize the count of in-progress results to
    the list provided in the scheduler request.
- scheduler: add "--mark_jobs_done" flag; if set, all jobs
    sent are marked as done, and their WUs enabled for transition.
    This is used for simulation purposes,
    in conjunction with sched_driver.
- scheduler: if --batch option is set, don't check RPC seqnos
    (for simulation purposes)

svn path=/trunk/boinc/; revision=13101
2007-07-05 04:18:48 +00:00
David Anderson 7c7fbf250d - client: add <simple_gui_only> config flag
- GUI RPC: add disallow_attach and simple_gui_only flags
    to CC_STATUS structure

client/
    gui_rpc_server_ops.C
    log_flags.C,h
html/inc/
    stats_sites.inc
lib/
    gui_rpc_client.h
    gui_rpc_client_ops.C

svn path=/trunk/boinc/; revision=13084
2007-07-02 20:55:21 +00:00
David Anderson 9f6fe805ad - API: set fraction_done to 1 in boinc_finish()
api/
    boinc_api.C

svn path=/trunk/boinc/; revision=13050
2007-06-28 22:51:51 +00:00
David Anderson 823df51238 - client: allow up to a day (rather than work_buf_min()) to elapsed
between completing a result and reporting it.
- back end: added <httpd_user> config option:
    Web server user name (used by file deleter)
- back end: don't report unparsed XML in config.xml as an error

client/
    app.h
    work_fetch.C
lib/
    shmem.C
sched/
    file_deleter.C
    file_upload_handler.C
    sched_config.C,h
    show_shmem.C

svn path=/trunk/boinc/; revision=13039
2007-06-27 20:09:18 +00:00
David Anderson 7ea662932c - add new stats site
- back end: use boinc_mkdir to get permissions right

html/inc/
    stats_sites.inc
lib/
    filesys.C
sched/
    db_dump.C
    db_purge.C
    feeder.C

svn path=/trunk/boinc/; revision=13033
2007-06-26 21:14:58 +00:00
David Anderson 601403d9aa - Client (Unix) show process exit codes as negative numbers also
(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
2007-06-04 20:32:47 +00:00
David Anderson 2fa5db2775 - scheduler: move HR check to wu_is_infeasible()
In principle, a project can now use both
    locality scheduling and homogeneous redundancy.
- scheduler: do HR check before deadline check,
    since the latter is slower.
- scheduler: wu_is_infeasible() doesn't return a bitmap.
    Change its return values to sequential numbers.
- scheduler: ignore <accelerator> and <p_capabilities> tags

sched/
    sched_send.C,h
    sched_array.C
    sched_locality.C
    server_types.C

svn path=/trunk/boinc/; revision=12791
2007-05-31 18:14:45 +00:00
David Anderson 1e7e58875a - client: add cmdline options --exit_before_start and --exit_after_finish.
This cause the core client to exit immediately before or after
    running a job,
    letting you examine the contents of the slot directory.
- scheduler: changed max # of CPUs used in daily_result_quota
    limit from 4 to 8, and make it a compile-time parameter
- feeder/scheduler: make the number of work items in shared
    memory configurable (in config.xml).
    The element is <shmem_work_items>
- feeder: make the size of the work item query configurable
    (<feeder_query_size)
- feeder: remove code related to removing infeasible results
    from shared mem.
    This mechanism was never needed,
    and I think a timeout would accomplish the same effect.

client/
    app.C
    app_start.C
    client_state.C,h
    cs_cmdline.C
sched/
    feeder.C
    sched_array.C
    sched_config.C,h
    sched_send.C
    sched_shmem.C,h
    sched_util.C
    show_shmem.C

svn path=/trunk/boinc/; revision=12771
2007-05-29 21:45:01 +00:00
David Anderson f7e650191a - client: change Win program launch to suppress hourglass cursor
- client simulator: add --cpu_sched_rr_only and --dual_dcf options

client/
    app.h
    app_start.C
    client_types.C,h
    cpu_sched.C
    cs_scheduler.C
    sim.C,h
    work_fetch.C

svn path=/trunk/boinc/; revision=12671
2007-05-15 20:29:26 +00:00
David Anderson a3c22a1bf7 - client: add constructor/destructor for APP_VERSION, WORKUNIT, RESULT
- client: with anonymous platform, don't link app version twice

client/
    client_types.h
    client_state.C
    cs_apps.C
    cs_files.C
    cs_prefs.C
    cs_scheduler.C
    cs_statefile.C
    sim_util.C
html/
    uotd.inc
sched/
    edf_sim.h
    server_types.h

svn path=/trunk/boinc/; revision=12638
2007-05-10 16:23:10 +00:00
David Anderson c08eddf7fe - GUI RPC: add new element d_boinc to DISK_USAGE;
tells how much disk space BOINC is using
        (not including projects).
    - added project.max_infeasible_count to client simulator

    client/
        gui_rpc_server_ops.C
        sim.C,h
        sim_util.C
    clientgui/
        ViewResources.cpp
    lib/
        filesys.C
        bui_rpc_client.h
        bui_rpc_client_ops.C

svn path=/trunk/boinc/; revision=12615
2007-05-08 23:12:40 +00:00
David Anderson 7207c6ef39 - make_project: create <log_dir> element in config.xml
(so that show_logs.php will work).
        Fixes #170
        
    py/Boinc/
        setup_project.py

svn path=/trunk/boinc/; revision=12582
2007-05-07 02:10:31 +00:00
David Anderson 7619242655 - Core client: small changes to make the client simulator act reasonably.
- change > to >= for check for running beyond sched period
        - adjust debts before calculating anticipated debt
    
    client/
        client_types.h
        cpu_sched.C
        sim.C

svn path=/trunk/boinc/; revision=12546
2007-05-03 21:22:24 +00:00
David Anderson 5b02dcc24a Update binary image.
svn path=/trunk/boinc/; revision=12471
2007-04-25 16:35:06 +00:00
David Anderson 7e2b39c4db David 24 Apr 2007
- Server: add new database field host.error_rate.
        Stores a dynamic estimate of the fraction of the hosts's
        results that fail validation (updated by the validator).

    client/
        sim.C
        cs_prefs.C
    db/
        boinc_db.C,h
    html/ops/
        db_update.php
    sched/
        handle_request.C
        sched_msgs.h
        validator.C

svn path=/trunk/boinc/; revision=12466
2007-04-24 23:21:42 +00:00
David Anderson 3f915e647f svn path=/trunk/boinc/; revision=12407 2007-04-17 22:24:53 +00:00
David Anderson 49afbfe4e3 *** empty log message ***
svn path=/trunk/boinc/; revision=12348
2007-04-11 22:46:42 +00:00
David Anderson d5bd5c1a79 *** empty log message ***
svn path=/trunk/boinc/; revision=12323
2007-04-05 18:17:15 +00:00
David Anderson f3a7e400fd *** empty log message ***
svn path=/trunk/boinc/; revision=12287
2007-03-30 03:33:57 +00:00
David Anderson b8a107c995 *** empty log message ***
svn path=/trunk/boinc/; revision=12265
2007-03-23 18:48:06 +00:00
David Anderson e9e3a89462 *** empty log message ***
svn path=/trunk/boinc/; revision=12207
2007-03-10 18:47:39 +00:00
David Anderson c695c0f1e6 *** empty log message ***
svn path=/trunk/boinc/; revision=12193
2007-03-06 18:22:04 +00:00
David Anderson 2b67a5e84e *** empty log message ***
svn path=/trunk/boinc/; revision=12185
2007-03-04 02:30:48 +00:00
David Anderson 6ff0977570 *** empty log message ***
svn path=/trunk/boinc/; revision=12139
2007-02-22 16:33:37 +00:00
David Anderson 3b27b99b0e *** empty log message ***
svn path=/trunk/boinc/; revision=12056
2007-02-08 21:06:03 +00:00