Commit Graph

1336 Commits

Author SHA1 Message Date
David Anderson 066f01dc26 - Terminology in user web and client:
"task" instead of "result";
    "computer" instead of "host";
    "scheduler request" instead of "scheduler RPC"
    "access to Internet" instead of "access to reference web site"

svn path=/trunk/boinc/; revision=13774
2007-10-04 17:30:28 +00:00
Eric J. Korpela 8403c6f570 Fixed build on systems without <malloc.h>
svn path=/trunk/boinc/; revision=13768
2007-10-03 16:19:45 +00:00
David Anderson a1590ff580 - scheduler: <max_wus_in_progress> option wasn't working,
because the reply.req structure was getting zeroed
    AFTER nresults_on_host was being set.


svn path=/trunk/boinc/; revision=13712
2007-09-28 18:27:02 +00:00
David Anderson 505d04969a - file upload handler: fix major bug (introducted 12 Sept)
that caused it to report "volume full" erroneously
- added --help option to some backend programs;
    gives general info and directs to web page
    file_upload_handler.C

svn path=/trunk/boinc/; revision=13685
2007-09-27 15:08:40 +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
Bruce Allen 76c3c6a46e Eliminate more logging noise from the scheduler (complaints
about unrecognized tags).

svn path=/trunk/boinc/; revision=13640
2007-09-24 06:54:01 +00:00
Bruce Allen c3eff600ff Eliminate some logging noise from the scheduler (complaints
about unrecognized tags).

svn path=/trunk/boinc/; revision=13639
2007-09-23 21:38:47 +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
Bruce Allen 6b1aa1cdf2 - scheduler: added config option to control (turn off) some aspects
of file deletion. If you set file_deletion_strategy to 0 (default)
      then this turns off file deletion in the locality scheduler.
      Set file_deletion_strategy to 1 to get current behavior.  Other
      values are not defined.  I'll document this in the Wiki.

    sched/
        sched_config.h
        sched_config.C
        sched_locality.C

svn path=/trunk/boinc/; revision=13594
2007-09-17 15:58:36 +00:00
David Anderson c0c6cf779d - file upload handler:
in get_file_size() RPC, check if volume has < 1MB available space
    and if so return transient error.
    This prevents client from trying upload,
    which apparently sends entire file even if
    handler fails at the beginning
- API, Win: remove use of GetTickCount(); use dtime() instead
- use new BOINC logo in sample project home page

svn path=/trunk/boinc/; revision=13574
2007-09-12 08:25:22 +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 4e1f0b7019 - client: add a <data_dir> option in cc_config.xml;
tells the client to use this as the data directory
- scheduler: improve the message telling the client that
    more disk or memory is needed;
    tell them the minimum amount needed to
    send any of the jobs rejected,
    rather than the amount needed for the first job rejected
- manager: fix text in "connect now" dialog

svn path=/trunk/boinc/; revision=13387
2007-08-16 17:33:41 +00:00
David Anderson 71fc375d1b - feeder: created shared mem seg with 0666 rather than 0660.
In principle 0660 should work (assuming apache belongs to admin group)
    but apparently on some Linux systems it doesn't,
    and the feeder gets "can't attach to shared mem" errors.
- scheduler: print uid/gid info if can't attach to shared mem
- user web: fix bug in team founder transfer form

svn path=/trunk/boinc/; revision=13255
2007-08-01 15:35:08 +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 30ec49bba6 svn path=/trunk/boinc/; revision=13173 2007-07-17 21:12:59 +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 4f61f60851 - scheduler: FCGI version would crash if stop_sched is set
svn path=/trunk/boinc/; revision=13132
2007-07-10 18:44:58 +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 80c7b4aae1 - added sample host-distribution file for HR
svn path=/trunk/boinc/; revision=13113
2007-07-06 18:19:10 +00:00
David Anderson 797c464b3a - Back end: add a feature for "blackballing" hosts.
To do this, set host.max_results_day to -1.
    If you do this, scheduler requests from that host
    will get an error message, and will otherwise be ignored
    (no jobs in or out, no trickles).
- Scheduler: send_message() should be called ONLY if you're
    not going to call handle_request();
    otherwise we'll write two separate replies.
    To fix this, I added a separate function (send_error_message())
    that can be called within handle_request()
    to deal with error situations.
- Scheduler: moved debug_sched() to main.C
- Scheduler: moved logic to send "delete file" commands
    out of handle_request() into a separate function,
    send_file_deletes() in sched_locality.C.
    Remove #ifdef EINSTEIN_AT_HOMEs; maybe someday another project
    will use locality scheduling!

svn path=/trunk/boinc/; revision=13108
2007-07-06 16:37:00 +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 ef80e8576f - Added program sched/sched_driver.C.
This generates a sequence of scheduler requests,
    with host info taken from a file,
    that you can feed into the scheduler (cgi --batch)
    to simulate things like homogeneous redundancy
- Added args to XML_PARSER::skip_unexpected() to you can say
    whether to write messages to stderr for unparsed stuff.
    This is set to true if log_flags.unparsed_xml is set (client)
    or if debug_level is 3 (server)
- removed references to $(LIBRSA) in Makefile.am's

client/
    Makefile.am
    acct_mgr.C
    gui_rpc_server_ops.C
    log_flags.C
lib/
    Makefile.am
    app_ipc.C
    gui_rpc_client_ops.C
    parse.C,h
    prefs.C
sched/
    Makefile.am
    sched_config.C
    sched_driver.C

svn path=/trunk/boinc/; revision=13090
2007-07-03 21:55:50 +00:00
Bruce Allen a5854e5485 fix typo in comment and docs
svn path=/trunk/boinc/; revision=13089
2007-07-03 21:35:59 +00:00
Bruce Allen 204a88ceda An E@H specific hack
If deleting a file with name matching pattern h1_XXXX.XX_S5R2
generate corresponding l1_h1_XXXX.XX_S5R2 pattern and delete it also

This is needed because E@H is doing file locality scheduling with
PAIRS h1_... and l1_... of files. Yuk.


svn path=/trunk/boinc/; revision=13087
2007-07-03 20:45:13 +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 fdbe1dbd2d - added hr_info.*
svn path=/trunk/boinc/; revision=13023
2007-06-25 23:56:03 +00:00
David Anderson a97556bdfd - feeder: added a new enumerator of DB_WORK_ITEM that,
on successive calls, scans through ALL the sendable
    jobs satisfying the select clause
    (it does this by ID order, so there's no order clause)
    This is used for HR, so that if a job has been committed
    to an HR class, we eventually get it.

    With extremely minimal testing, the new HR stuff seems to work.

db/
    boinc_db.C,h
sched/
    feeder.C
    sample_work_generator.C
    server_types.C

svn path=/trunk/boinc/; revision=12988
2007-06-22 23:48:37 +00:00
David Anderson c912a6506b - user web: fixed bug in private-message code
- back end: moved HR_INFO to a separate file;
    did some debugging in HR code

html/
    inc/
        forum_user.inc
        util.inc
    user/
        forum_pm.php
sched/
    Makefile.am
    census.C
    feeder.C
    hr.C,h
    hr_info.C,h (new)

svn path=/trunk/boinc/; revision=12978
2007-06-22 03:46:42 +00:00
David Anderson f5d94818dd - added "census", a program that counts up how much RAC
there is for each HR class, and writes it to a file.
    This will be used soon for HR support in the feeder.
- split the HR code into hr.C,h (stuff used by both census and scheduler)
    and sched_hr.C (stuff used only by the scheduler)
- database: change DB_CREDITED_JOB to treat workunitid
    as a double (which it is) rather than a long.
    BTW, long == int.
- fixed lots of compile warnings in the server code

db/
    boinc_db.C,h
lib/
    boinc_cmd.C
    miofile.C
    util.C
sched/
    Makefile.am
    census.C (new)
    feeder.C
    file_deleter.C
    file_upload_handler.C
    handle_request.C
    hr.C,h (new)
    main.C
    sample_assimilator.C
    sample_work_generator.C
    sched_array.C
    sched_hr.C,h
    sched_send.C
    server_types.C
    transitioner.C
    validator.C

svn path=/trunk/boinc/; revision=12970
2007-06-20 22:34:06 +00:00
David Anderson 6ad51e0452 - feeder: more code cleanup
sched/
    feeder.C


svn path=/trunk/boinc/; revision=12969
2007-06-20 20:23:07 +00:00
David Anderson 45f04aa04b - back end: make it possible to run multiple instances of make_work,
for WUs of different applications
    (need to count unsent results separately by app)
- feeder: major code cleanup
    - application interleaving (for -allapps) is now done
        by building a static slot-to-app array "app_indices".
        Fractional weights now work correctly.
    - enum sizes (for -allapps) are now precomputed
        in an array "enum_sizes"
    - rename "found" (confusing!!) to "collision"
    - swapped the names of mod_select_clause and select_clause,
        to reflect what they actually are
- file deleter: in finding oldest WU, order by id instead of create_time
    (there's no index on create_time)
- user web: show "merge by name" only to host owner
- add cpu_scheduler_period() member to GLOBAL_PREFS
    (so you don't have to multiply by 60 everywhere)
- infinite() fix for HPUX

client/
    cpu_sched.C
    cs_cmdline.C
    cs_scheduler.C
    rrsim_test.C
    sim.C
    work_fetch.C
html/user/
    hosts_user.php
lib/
    parse.h
    prefs.h
sched/
    feeder.C
    file_deleter.C
    make_work.C
    sample_work_generator.C
    sched_util.C,h
tools/
    updater.C

svn path=/trunk/boinc/; revision=12968
2007-06-20 16:27:27 +00:00
David Anderson 9850a17167 - GUI RPC: add graphics_exec_path and slot_path fields to RESULT.
These let the Manager run the graphics app.
    Graphics apps have physical name *v6graphics*
- Separated ACTIVE_TASK::write() and ACTIVE_TASK::write_gui().
    These need to write largely disjoint set of items.
- code cleanup: remove a zillion "else"s in parsing code
- code cleanup: change a zillion match_tag(buf, "<foo/>"
    to parse_bool(buf, "foo")

client/
    app.C,h
    client_state.C
    client_types.C,h
lib/
    gui_rpc_client.h
    gui_rpc_client_ops.C
sched/
    server_types.C

svn path=/trunk/boinc/; revision=12938
2007-06-14 23:08:43 +00:00
David Anderson fcab43c4da - scheduler: support per-app HR type, specified in the DB;
this supercedes the global HR type specified in config.xml
- API: eliminate small memory leak
    (if reread app init file, free malloc'd project prefs from last time)
- file upload handler: parse <md5_cksum> to avoid error msg

lib/
    app_ipc.C
sched/
    file_upload_handler.C
    sched_array.C
    sched_hr.C,h
    sched_send.C,h

svn path=/trunk/boinc/; revision=12936
2007-06-14 18:02:00 +00:00
David Anderson 981eef6b14 - Scheduler: changed the <homogeneous_redundancy> option
from a bool to an int:
    0 = no HR
    1 = HR with fine-grained classification (from MF Somers)
    2 = HR with coarse-grained classification (from WCG)

    Note: numerical equivalence depends on your application
    and how it's compiled.  Some apps may need classifications
    other than these two.  Contact me if so.

sched/
    sched_hr.C
    sched_config.C,h

svn path=/trunk/boinc/; revision=12934
2007-06-14 15:05:20 +00:00
David Anderson 05226427dd - API: set timer thread stack size to 16KB
- Scheduler: for no_amd_k6 option, check CPU vendor as well as model

sched/
    handle_request.C
api/
    boinc_api.C

svn path=/trunk/boinc/; revision=12929
2007-06-13 19:09:46 +00:00
David Anderson df5909d473 - scheduler: add no_darwin_6 option
(don't send work to Mac OS X 10.2 or earlier).
    This used to be #ifdef in by Einstein@home.
- scheduler: add no_amd_k6 option
    (don't send work to AMD K6 CPUs)

sched/
    handle_request.C
    sched_config.C,h

svn path=/trunk/boinc/; revision=12912
2007-06-12 21:40:32 +00:00
David Anderson 2f2757d4e9 - sched compile fix
sched/
    server_types.C

svn path=/trunk/boinc/; revision=12862
2007-06-08 23:01:25 +00:00
David Anderson 610d4cfa77 - client: allow suspension of non-CPU-intensive project or app
(undoes checkin of 25 Jan 2005; I don't remember why we
    made that change.  Next time put in checkin notes!)
- client: Linux: show error msg if can't open /proc/cpuinfo
    or /proc/meminfo; set memory size of 1 GB in latter case.
    Remove duplicate code that read /proc/meminfo
- 'start' script; handle <disabled>0</disable> in tasks and daemon
    elements of config.xml (can't handle <disable/>, however).
    
client/
    gui_rpc_server_ops.C
    hostinfo_unix.C
sched/
    feeder.C
    start

svn path=/trunk/boinc/; revision=12807
2007-06-03 19:37:45 +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 6eacc21409 - scheduler: add debugging msg for HR reject
sched/
    sched_hr.C,h
    sched_array.C

svn path=/trunk/boinc/; revision=12787
2007-05-30 22:10:57 +00:00
David Anderson 88860ed316 - user web: fix bug in host merge function
- core client: fix bug in set_debt() GUI RPC
- scheduler: some of the "quick checks" in scan_work_array()
    are applicable to locality scheduling also,
    so they should be moved to wu_is_infeasible().
    I did this for one: the check for one result
    per user (or host) per WU.  Should do for others.
    
client/
    gui_rpc_server_ops.C
html/
    host_edit_action.php
    host_edit_form.php
sched/
    sched_array.C
    sched_send.C,h

svn path=/trunk/boinc/; revision=12784
2007-05-30 17:25:51 +00:00
David Anderson d673440faf - Scheduler: increased the resolution of homogeneous redundancy (HR)
e.g. distinguish between models of Intel and AMD
- Scheduler: add a quick HR check that doesn't access the DB
- Transitioner: if a workunit has >0 error results and no success results,
    set its HR class to zero
From M.F. Somers.

db/
    boinc_db.C,h
sched/
    sched_array.C
    sched_hr.C,h
    transitioner.C

svn path=/trunk/boinc/; revision=12773
2007-05-29 23:41:31 +00:00
David Anderson ec57e4180c tweak to last checkin
svn path=/trunk/boinc/; revision=12772
2007-05-29 22:05:48 +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 b751d2924d fix to "project ended" mechanism
svn path=/trunk/boinc/; revision=12743
2007-05-24 16:20:18 +00:00
David Anderson 4f81994be6 - Add a mechanism for a project to shut down gracefully.
If <ended>1</ended> is included in config.xml,
    this gets send to clients,
    and they display a "Project ended - OK to detach" message.

client/
    client_state.C
    client_types.C,h
    scheduler_op.C
clientgui/
    VIewProjects.cpp
    VIewProjectsGrid.cpp
lib/
    gui_rpc_client.h
    gui_rpc_client_ops.C
    gui_rpc_client_print.C
sched/
    sched_config.C,h
    server_types.C

svn path=/trunk/boinc/; revision=12742
2007-05-24 16:07:21 +00:00