Commit Graph

1716 Commits

Author SHA1 Message Date
David Anderson 312ffba708 - API: remove BOINC_OPTIONS::worker_thread_stack_size
- web: check whether to show profile in separate function
    from displaying profile; eliminate double headers
- scheduler: finish purge of redundant arguments

svn path=/trunk/boinc/; revision=16726
2008-12-19 18:14:02 +00:00
David Anderson 5495ec64df - web/scheduler: add a project-specific preferences for
whether to accept GPU jobs

svn path=/trunk/boinc/; revision=16723
2008-12-18 21:25:51 +00:00
David Anderson 58cdf84551 - scheduler: in estimating job duration,
clamp running fraction to [.1, 1] and clamp DCF to [.1, 100]

svn path=/trunk/boinc/; revision=16722
2008-12-18 18:19:42 +00:00
David Anderson 765eefd18d svn path=/trunk/boinc/; revision=16715 2008-12-17 22:05:20 +00:00
David Anderson 90740c7690 - feeder: include all app versions that have maximal version num
within their plan class

svn path=/trunk/boinc/; revision=16714
2008-12-17 21:58:54 +00:00
David Anderson 8c965f2625 - scheduler: add some debugging msgs
svn path=/trunk/boinc/; revision=16711
2008-12-17 20:53:46 +00:00
David Anderson 4a65681176 - scheduler: if client has coprocs,
put a textual summary of them in host.serialnum (currently unused)
- web: show coprocs on host detail page
- db_dump: include coproc info in host XML

svn path=/trunk/boinc/; revision=16697
2008-12-16 18:46:28 +00:00
David Anderson ef52366c1b - web: fix bug that caused login to fail
- sched: more global vars

svn path=/trunk/boinc/; revision=16695
2008-12-16 16:29:54 +00:00
David Anderson 41498a6840 - scheduler: fix typo; enforce 256MB CUDA memory limit
svn path=/trunk/boinc/; revision=16693
2008-12-15 23:35:40 +00:00
David Anderson ef3c9c7444 - scheduler: add --help option
svn path=/trunk/boinc/; revision=16692
2008-12-15 22:56:08 +00:00
David Anderson 49a69de194 - scheduler: estimate job durations based on the FLOPS estimate
for the selected APP_VERSION, rather than on the CPU benchmarks.
    Otherwise estimates are wrong for GPU or multi-thread apps.
- scheduler: start switching from having SCHED_REQUEST and
    SCHED_REPLY as globals instead of passing them around as args;
    to be continued.

svn path=/trunk/boinc/; revision=16691
2008-12-15 21:14:32 +00:00
David Anderson 14f6f9a386 - scheduler: add <ignore_dcf> option;
use this temporarily when you've fixed FLOPS estimate


svn path=/trunk/boinc/; revision=16672
2008-12-12 17:03:54 +00:00
David Anderson 603c58ce7d - scheduler: in sample code for CUDA, require 256MB RAM
svn path=/trunk/boinc/; revision=16668
2008-12-10 19:14:13 +00:00
David Anderson e3807a8386 - scheduler: estimate CUDA device speed based on clock rate an #MP
- web: close table in WU page
- web: fix PHP error in translation script

svn path=/trunk/boinc/; revision=16648
2008-12-08 19:39:19 +00:00
David Anderson 79fb6e969e - Remove the notion of "CPU efficiency" from both client and server.
This wasn't being measured correctly for coproc/multithread apps,
    and its effect is now subsumed in DCF.

svn path=/trunk/boinc/; revision=16610
2008-12-03 19:50:06 +00:00
David Anderson 8ea8081626 - scheduler: fix memory leak when reporting time stats logs
- scheduler: fix egregious bug where wu_is_infeasible_fast() result
    is ignored, and we send jobs to hosts that can't handle them.
- scheduler: don't check for disk space in work_needed();
    do it in check_disk(), which generates a message to user.
- scheduler: add -debug_log flag, which sends stderr to
    "debug_log" rather than scheduler_log.txt (for debugging)

svn path=/trunk/boinc/; revision=16578
2008-11-26 21:49:36 +00:00
David Anderson f8ed8163d2 - server: sleep intervals are integers
svn path=/trunk/boinc/; revision=16577
2008-11-26 20:37:11 +00:00
David Anderson 07bd768e9d - server: add -sleep_interval args to file_deleter and transitioner
(from Nicolas; fixes #783)


svn path=/trunk/boinc/; revision=16576
2008-11-26 19:09:27 +00:00
David Anderson ae826ef2eb - API: remove debugging printf from trickly down code
- API: use non-verbose option to zip
- scheduler: if multiple_client_per_host is set,
    don't mark results as over if get repeat CPID

svn path=/trunk/boinc/; revision=16445
2008-11-07 04:13:08 +00:00
David Anderson 5ac0aee6ce - client: add OS name into the hash for host CPID
(for multi-OS hosts)
- scheduler: use sqrt(x) instead of x in stop-checking
    for single redundancy.

svn path=/trunk/boinc/; revision=16433
2008-11-05 20:27:04 +00:00
David Anderson 970dc25474 - fix makefile typo
- fix scheduler error (can't end with \n)


svn path=/trunk/boinc/; revision=16419
2008-11-04 20:44:44 +00:00
David Anderson ae95ae0527 - file_deleter: add -input_files_only and -output_files_only options.
If you store input and output files on different servers,
    you can run 2 file_deleters, each one on the same machine
    as the files it's going to be deleting.
- file_deleter: add -help option and usage()

client/
    cpu_sched.cpp
    sched/
        file_deleter.cpp

svn path=/trunk/boinc/; revision=16397
2008-11-03 22:56:16 +00:00
David Anderson 15b58e582d - client, scheduler: there were a few places where we had 1e9
instead of 1 gig (2^20)


svn path=/trunk/boinc/; revision=16387
2008-11-01 23:13:55 +00:00
David Anderson 2d1d47de15 - client: move round-robin simulation to its own file
- web: check for profile existence before trying to show it
- file deleter: add some debugging msgs

svn path=/trunk/boinc/; revision=16338
2008-10-28 21:59:25 +00:00
David Anderson be4cd9bb79 - scheduler: notify user if we're not sending work
because we don't have any (matchmaker only).
- back end programs: for programs that do enumerations,
    check for error returns and exit
    (otherwise we'll get stuck forever if DB fails)

NOTE: In the course of researching this I came across a bug
in the transitioner: if there's a WU with more than 1000 results,
the enumeration will always return ERR_DB_NOT_FOUND,
and the transitioner won't ever do anything again.
Fixing this is a little tricky, so I'm not going to do it right now.


svn path=/trunk/boinc/; revision=16324
2008-10-27 21:23:07 +00:00
David Anderson 5039207e2c - scheduler: add <have_cuda_apps> config flag.
If set the "effective NCPUS" (which is used to scale
    daily_result_quota and max_wus_in_progress)
    is max'd with the # of CUDA GPUs.

svn path=/trunk/boinc/; revision=16246
2008-10-21 23:16:07 +00:00
David Anderson e43e8a408d - client: major changes to enforce_schedule() to handle GPUs
svn path=/trunk/boinc/; revision=16178
2008-10-09 22:44:45 +00:00
David Anderson ebe3b090e8 - add a script "upgrade_db.php" that updates project DB structure
(after user confirmation).
    This is called from "upgrade", and can also be run by itself.

    NOTE: this mechanism will handle all DB updates going forward.
    Older updates must be done the old way (edit and run db_update.php)

- Web: let teams determine whether they're accepting new members


svn path=/trunk/boinc/; revision=16160
2008-10-08 16:48:11 +00:00
David Anderson 56c203a9a2 - added a script (from Nicolas) to generate en.po
svn path=/trunk/boinc/; revision=16151
2008-10-07 20:24:16 +00:00
David Anderson 33ad1b3d40 - Added the above DB change to schema.sql
- Omit the "after" clause from update.
- Web: add missing arg; fixes #749
- server: more --help additions

svn path=/trunk/boinc/; revision=16136
2008-10-06 00:18:36 +00:00
David Anderson f17c0879de - changed some comments for Doxygen
svn path=/trunk/boinc/; revision=16130
2008-10-04 23:44:24 +00:00
David Anderson a31c5d9e98 - Manager: show resource requirements of all jobs, running or not
- Back-end programs: start adding --help option to all of them

svn path=/trunk/boinc/; revision=16121
2008-10-03 19:31:56 +00:00
David Anderson 49bb779fb0 - scheduler: add a \n after projects_files.xml, in case it doesn't have one
svn path=/trunk/boinc/; revision=16113
2008-10-02 19:16:09 +00:00
David Anderson 59184caaa9 - scheduler: FCGI: use mysql_ping() to check that DB connection
is still alive before handling a request.  If not, try to reconnect.
    This will hopefully make things work better if MySQL goes down and up
    when using FCGI.

svn path=/trunk/boinc/; revision=16112
2008-10-02 19:03:52 +00:00
David Anderson d973bcac15 - scheduler: move core_client_version from WORK_REQ to SCHEDULER_REQUEST;
WORK_REQ doesn't get initialized in all cases.

svn path=/trunk/boinc/; revision=16107
2008-10-01 22:07:35 +00:00
David Anderson 632587c3b4 - scheduler: enforce max_wus_to_end, daily_result_quota,
and max_wus_in_progress when using score-based scheduling

svn path=/trunk/boinc/; revision=16106
2008-10-01 20:58:28 +00:00
David Anderson bb9d546a02 - scheduler: add <no_vista_sandbox> option.
If set, don't send work to sandboxed Vista clients
    (e.g., because of CUDA issue)

svn path=/trunk/boinc/; revision=16105
2008-10-01 19:48:52 +00:00
David Anderson 57b92fb40a - scheduler: #ifdef'd tweaks for server simulator
svn path=/trunk/boinc/; revision=16097
2008-09-30 18:21:41 +00:00
David Anderson 98cfb8d3b0 - rename .C files to .cpp so that Doxygen will work
svn path=/trunk/boinc/; revision=16069
2008-09-26 18:20:24 +00:00
David Anderson 0f8f9f3dab - API: in boinc_exit(), release the lockfile only if
we're the main program (otherwise we didn't lock it in
    the first place, and a crash results).  From Artyom Sharov.
- scheduler: add support for the GCL simulator,
    which uses special versions of backend programs
    that use virtual time,
    and that wait for signals instead of sleep()ing.

    To compile:
        make clean
        configure CXXFLAGS="-DGCL_SIMULATOR"
        make

svn path=/trunk/boinc/; revision=16036
2008-09-22 17:52:41 +00:00
David Anderson 8248896bc9 - typo
svn path=/trunk/boinc/; revision=16017
2008-09-18 12:01:50 +00:00
David Anderson 4ad5249bf2 - scheduler: various bug fixes in score-based schedule;
get rid of no_darwin_6 option


svn path=/trunk/boinc/; revision=16015
2008-09-17 23:35:16 +00:00
David Anderson 750fe8795a - back end programs: optional BOINC_CONFIG_XML environment variable
specifies path of config file (default: ../config.xml)

svn path=/trunk/boinc/; revision=16011
2008-09-17 21:14:47 +00:00
Eric J. Korpela 9d91ac8428 Fix typo.
svn path=/trunk/boinc/; revision=16009
2008-09-17 17:20:02 +00:00
David Anderson 6379b2682b - feeder: fix bug from changset 15984 that changed "r" to "w",
causing the feeder to truncate hr_info.txt on startup


svn path=/trunk/boinc/; revision=16008
2008-09-17 15:59:14 +00:00
David Anderson fd3dbc1058 - client: ignore CUDA devices with major versions > 100
(apparently some report 9999)
- web: security changes: sanitize some params; escape some strings

svn path=/trunk/boinc/; revision=16005
2008-09-16 23:06:37 +00:00
Eric J. Korpela 40e243412d - Fixed fcgi builds to use an installed version of fcgi_stdio.h rather than
a modified boinc version.
    - Added new header "boinc_fcgi.h" to be used instead of "fcgi_stdio.h".
      This header defines I/O functions in the namespace FCGI rather than using
      redefined functions the way "fcgi_stdio.h" does.  This was causing a lot
      of headaches when both <cstdio> and "fcgi_stdio.h" was called.  Using
      overloaded functions fixes this problem, except when the only difference
      between functions is the return type (for example ::fopen() returns FILE*
      and FCGI::fopen() returns FCGI_FILE*).
    - Fixed some missing "#ifdef _WIN32" blocks in filesys.C



svn path=/trunk/boinc/; revision=15984
2008-09-09 19:10:42 +00:00
David Anderson cc7d507789 - DB interface: in update(), check that 1 row was updated
- API: in APP_INIT_DATA, enclose project preferences in tags
    so that it's legal XML
- scheduler: add <multiple_clients_per_host> option.
    Use this if your project runs on Condor or grids
    and (to use multicore machines) you're running
    multiple clients per host.
    This will skip the host lookup based on IP address.


svn path=/trunk/boinc/; revision=15954
2008-09-04 08:33:21 +00:00
David Anderson ca00559575 - client (Unix): don't assume that LD_LIBRARY_PATH is defined
svn path=/trunk/boinc/; revision=15944
2008-08-28 18:41:18 +00:00
David Anderson 1013cf02c5 - validator: add a global variable WORKUNIT* g_wup;
that points to the workunit being processed;
    you can use this in your init_result(), compare_result() etc.
    if you need it.

svn path=/trunk/boinc/; revision=15919
2008-08-21 20:58:32 +00:00
David Anderson 53ccd10f13 - scheduler: add <debug_resend> config option to enable messages
about job resending

svn path=/trunk/boinc/; revision=15889
2008-08-19 03:00:17 +00:00
David Anderson 6869242f75 - scheduler: fixed bug that caused spurious messages
saying "no work was available for the apps you requested"
    with locality scheduling (i.e. Einstein@home)
    even if the user hasn't select apps.

    Note: the logic for printing these messages won't work
    for matchmaker scheduling.

svn path=/trunk/boinc/; revision=15847
2008-08-14 22:06:51 +00:00
David Anderson 104655a358 - client and server: add "len" arg to xml_escape() and xml_unescape()
(prevent buffer overrun).
    Also remove 1024 char limit for team description in db_dump.

svn path=/trunk/boinc/; revision=15820
2008-08-13 17:27:13 +00:00
David Anderson 6337181571 - scheduler: don't send jobs for "hard apps" (weight==-1)
to hosts with total_credit=0
- client: add a buffer size check

svn path=/trunk/boinc/; revision=15809
2008-08-12 19:06:35 +00:00
David Anderson ee56ea3341 - validator: get_credit_from_wu() returns an error, rather than exiting,
if WU doesn't have <credit> element

svn path=/trunk/boinc/; revision=15777
2008-08-07 22:50:05 +00:00
David Anderson 896bdb2e23 - web: improve white.css, and make corresponding PHP changes
(mostly from Simek)
    fixes #716
- validator: tweak the way host error rate is computed,
    e.g. on error bump rate by .1 instead of .05

svn path=/trunk/boinc/; revision=15771
2008-08-07 20:43:52 +00:00
David Anderson b5b3fd43b7 - scheduler: make credit_multiplier stuff conditional on
<use_credit_multiplier> flag in config.xml

svn path=/trunk/boinc/; revision=15766
2008-08-06 23:30:22 +00:00
David Anderson 91ca306e80 - scheduler: fix bug that caused jobs to be sent to clients
using anonymous platform
    even if they don't have the necessary app version.
    Also, send an explanatory message in this case.
    fixes #713


svn path=/trunk/boinc/; revision=15765
2008-08-06 22:08:47 +00:00
David Anderson 9b671b8f10 - file_deleter: add -delete_antiques_now options
svn path=/trunk/boinc/; revision=15763
2008-08-06 20:31:48 +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 1c139a5523 - XML parsing: when parsing int/double/bool and fail to find end tag,
don't modify the reference arg.
- scheduler: improved messages for preferences

svn path=/trunk/boinc/; revision=15757
2008-08-05 21:43:52 +00:00
David Anderson 6db22d8c0c - web: stylesheet fixes
fixes #708
- sched: slightly revise Bruce's fix


svn path=/trunk/boinc/; revision=15753
2008-08-05 15:06:42 +00:00
Bruce Allen 349f27a39e scheduler: in resending lost results, must copy core
client version.  David -- this can probably be done
better and might indicate that some other info is not
being properly copied.  Please review and fix if needed.
Before this fix, scheduler was complaining about
outdated core clients version 0 < min needed core 413.

tools for scheduler logging: change cgi.log.X to scheduler.log.X
in script that creates on-line logs for users to read
to help diagnose problems.

svn path=/trunk/boinc/; revision=15751
2008-08-04 23:30:37 +00:00
David Anderson 55c6b2fc64 - scheduler: added a debug msg for anonymous platform
svn path=/trunk/boinc/; revision=15749
2008-08-04 18:48:26 +00:00
David Anderson 95fdff2fd3 - server: add assimilator for Python Master/Worker system,
and change setup script to copy its files

svn path=/trunk/boinc/; revision=15702
2008-07-28 22:56:39 +00:00
David Anderson 283a785c0f - back-end stuff to support Python MW (from Adam Kornafeld)
Not complete.

svn path=/trunk/boinc/; revision=15679
2008-07-25 22:13:41 +00:00
Eric J. Korpela a5a6f693cd - Implementation of automatic credit leveling for cpu based projects that
wish to use it.
- The script calculate_credit_multiplier (expected to be run daily as
      a config.xml task) looks at the ratio of granted credit to CPU time 
      for recent results for each app.  Multiplier is calculated to cause 
      median hosts granted credit per cpu second to equal to equal that 
      expected from its benchmarks.  This is 30-day exponentially averaged 
      with the previous value of the multplier and stored in the table 
      credit_multplier.
- When a result is received the server adjusts claimed credit by the
      value the multiplier had when the result was sent.


svn path=/trunk/boinc/; revision=15661
2008-07-22 23:36:55 +00:00
Adam Kornafeld 7b667b4693 Assimilator program for pymw
svn path=/workspaces/kadam/; revision=15658
2008-07-22 21:26:36 +00:00
David Anderson 007b3ba9dd - server compile fix for gcc 4.3
svn path=/trunk/boinc/; revision=15647
2008-07-21 22:29:10 +00:00
David Anderson a227801dd8 - scheduler: in matchmaker scheduler, if find a "locked" array slot,
which whether we're the process that locked it (from Artyom Sharov)

svn path=/trunk/boinc/; revision=15630
2008-07-17 20:58:42 +00:00
David Anderson a6cf172fb0 - scheduler: fix logic to not send plan-class apps to clients
that don't know about plan class

svn path=/trunk/boinc/; revision=15609
2008-07-16 04:25:11 +00:00
David Anderson fa0dbd20c7 - scheduler: with matchmaker scheduling, avoid infinite loop
if result not in DB
    (from Artyom Sharov, DerMeister)

svn path=/trunk/boinc/; revision=15608
2008-07-15 22:44:36 +00:00
David Anderson 8c41a07992 - scheduler: Add a notion of "hard app" for SETI@home.
If an app is hard, the scheduler always does the deadline check,
    even if the client has no other jobs for this project.
    And the estimated wallclock duration is multiplied by 1.3,
    to avoid sending jobs to hosts that will barely make the deadline.

    Hard apps are marked by setting weight = -1.
    This is a total kludge, to avoid adding another field to app.

svn path=/trunk/boinc/; revision=15607
2008-07-15 21:43:45 +00:00
David Anderson ba6526f8c9 - scheduler: add constructor for HOST_USAGE structure
(otherwise get random crap in cmdline)


svn path=/trunk/boinc/; revision=15605
2008-07-14 22:32:20 +00:00
David Anderson 2a5a53c484 - scheduler: fix infinite loop in matchmaker sched (from Artyom Sharov)
svn path=/trunk/boinc/; revision=15603
2008-07-14 20:25:41 +00:00
David Anderson 1147e60b1a - web: fix bugs that cause backslashes to be introduced
in global prefs update via account manager RPC

svn path=/trunk/boinc/; revision=15602
2008-07-14 19:13:19 +00:00
David Anderson 234234569b - Improvements to single-job submission:
1) the assimilator creates a job_summary_WUID file saying
        - what host did the job
        - error status if any
        - info about missing output files
    2) all output files are now optional.
    3) the assimilator deletes temp files (templates, job dir file)

svn path=/trunk/boinc/; revision=15551
2008-07-04 19:41:58 +00:00
David Anderson c478b9f9e0 - client and server: the client includes global_prefs.xml
in scheduler request messages, without checking its contents.
    One user had apparently edited global_prefs.xml with an XML editor;
    it had an <?xml tag at the start,
    and had been collapsed into a single line with no newlines,
    and no newline at the end.
    This caused all scheduler requests from that client to get
    "Incomplete request" responses.

    The long-term fix is for the client to verify global_prefs.xml,
    and for the scheduler to parse it with XML_PARSER.
    As a short-term fix, I made these changes:
    - If the scheduler reads a line that's too long, it ignores it.
    - The scheduler ignores <?xml

svn path=/trunk/boinc/; revision=15543
2008-07-02 23:19:44 +00:00
David Anderson 16b1305db7 - server code: at some point I made a global var "SCHED_CONFIG config",
mostly so that the parse function could assume
    that everything was initially zero.
    However, various back-end functions pass around SCHED_CONFIG&
    as an argument (also named "config").
    This creates a shadow, which is always bad.
    Worse is the possibility that some projects have back-end programs
    that have a SCHED_CONFIG variable that's automatic,
    and therefore isn't zero initially,
    and therefore isn't parsing correctly.

    To fix this, I changed the 2 vectors in SCHED_CONFIG into pointers,
    and have the parse routine zero the structure.
    I was tempted to remove the SCHED_CONFIG& args to back-end functions,
    but this would have broken some projects' code.
    I did, however, change the name from config to config_loc
    to avoid shadowing.

    Also fixed various other compiler warnings.

svn path=/trunk/boinc/; revision=15541
2008-07-02 17:24:53 +00:00
David Anderson 0c5c51d531 - web: when hide/unhide/delete posts,
set the timestamp of the thread to the timetamp of
    the latest non-hidden post (rather than to now).
    Same thing for forum timestamp.
- scheduler: return more informative message to user in case of
    request message parse error

svn path=/trunk/boinc/; revision=15526
2008-07-01 16:34:51 +00:00
David Anderson 0f60f0d42b - scheduler: fix bug where a pointer to a 32-bit time field
was being cast to a pointer to 64-bit time field
    (this caused wrong results on 64-bit servers)
    From Sharov Artyom.

svn path=/trunk/boinc/; revision=15517
2008-06-30 23:05:16 +00:00
David Anderson cff13c8871 - server: add optional <no_validate> element to output file <file_ref>s.
This tells the sample bitwise validator to ignore this file.
- client: parse the above field (avoid "unparsed XML" msgs)

svn path=/trunk/boinc/; revision=15514
2008-06-30 16:46:05 +00:00
David Anderson 848a8041aa - back-end code: fix compiler warnings (and maybe bugs);
to some retentive code cleanup


svn path=/trunk/boinc/; revision=15497
2008-06-26 21:20:07 +00:00
David Anderson e88e698106 - scheduler: change message if bad auth (fixes #685)
svn path=/trunk/boinc/; revision=15445
2008-06-22 19:14:53 +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 b8f17039b4 svn path=/trunk/boinc/; revision=15410 2008-06-17 16:15:39 +00:00
David Anderson d737c428ff - scheduler: if host.n_bwdown is zero, skip the bandwidth check;
the host hasn't been measured yet.

svn path=/trunk/boinc/; revision=15409
2008-06-17 16:09:27 +00:00
David Anderson f0bd46e2c1 - web: change order of includes
svn path=/trunk/boinc/; revision=15381
2008-06-10 18:12:29 +00:00
David Anderson 4387e4491b - Fix emacs mode line in Makefile.am's
svn path=/trunk/boinc/; revision=15375
2008-06-08 22:18:52 +00:00
David Anderson 0e03df254b - Back end: add adaptive validation feature
(DB update required)
- Fixed typo in Eric's 5/28 checkin

svn path=/trunk/boinc/; revision=15357
2008-06-04 23:04:12 +00:00
David Anderson f0fc96196f - validator/assimilator: get_output_file_info()
was looking at the wrong XML field

svn path=/trunk/boinc/; revision=15350
2008-06-02 20:06:54 +00:00
David Anderson 96eabc043b - server: added -simulation option to feeder, validator, and assimilator
(for use in server simulator)

svn path=/trunk/boinc/; revision=15344
2008-06-01 03:43:47 +00:00
David Anderson c9d38091e7 - validator/assimilator: parse <file_ref>s rather than <file_info>s;
the latter is where the <optional/> flag is.

svn path=/trunk/boinc/; revision=15337
2008-05-30 03:29:31 +00:00
David Anderson 97239eb35c - Redo the above so that get_output_file_path() is unchanged;
add new functions get_output_file_info();
- change get_output_file_path() to look at the result's
    xml_doc_in rather than its xml_doc_out;
    this is the one that will have <optional/>
- fix crashing bug in the above

svn path=/trunk/boinc/; revision=15334
2008-05-29 21:54:18 +00:00
David Anderson ebfb1e8e3b - Validator framework: change get_output_file_path()
to return a struct FILE_INFO (including "optional")
    instead of just the filename.
    This lets you avoid erroring out if optional file is missing.
- Sample bitwise validator: support > 1 output file correctly

svn path=/trunk/boinc/; revision=15332
2008-05-29 20:11:43 +00:00
Eric J. Korpela 1f2d65bccb - Makefiles:
added client/scripts to default client build
    removed sea from the default clientgui build
    added locale/client to the default clientgui build
    moved installed headers from $(includedir) to $(pkgincludedir) which
       is $(includedir)/boinc by default.
    removed redefinitions of $(includedir) from Makefiles.
- configure:
    added locale/client/Makefile to AC_CONFIG_FILES


svn path=/trunk/boinc/; revision=15300
2008-05-28 01:38:39 +00:00
David Anderson 49eb1246cf - scheduler: added
- config option <matchmaker> for matchmaker scheduling
    - config options <mm_min_slots>, <mm_max_slots>, <job_size_matching>
        to control matchmaker scheduling
- scheduler: tweaks to matchmaker scheduling from Kevin Reed
- web: fixes to alternative stylesheet from Simek

svn path=/trunk/boinc/; revision=15281
2008-05-23 16:13:30 +00:00
David Anderson a1ab573857 - scheduler: if client has bad code sign key, don't send work
svn path=/trunk/boinc/; revision=15270
2008-05-21 22:33:21 +00:00
David Anderson c25344e343 - fix FCGI compile
svn path=/trunk/boinc/; revision=15265
2008-05-20 22:36:43 +00:00
David Anderson 586c07e3b4 - Add alternative stylesheet for project web
- Tweak error messages in client and server

svn path=/trunk/boinc/; revision=15263
2008-05-20 21:47:02 +00:00
David Anderson a493d5f9ba - scheduler: there were several situations where the scheduler
would send a reply without having looked up the user and team
    in the DB; e.g.:
    - client version# is too low
    - DB is down
    - host is blacklisted
    It would then send a full scheduler reply,
    including a blank team name and other missing info.
    
    Fix this by setting reply.nucleus_only initially
    (this causes a minimal reply to be sent)
    and clearing it only if the host/user/team lookup succeeds.
    Fixes #417, #633 (I think)

svn path=/trunk/boinc/; revision=15232
2008-05-16 00:14:48 +00:00
David Anderson 9e392c2c46 - validator: canonical_credit was being set incorrectly
when -max_granted_credit used.

svn path=/trunk/boinc/; revision=15196
2008-05-13 22:08:52 +00:00
David Anderson b622f64e30 - scheduler: performance optimization for EDF simulation.
Keep track of the "easiest" job that has been rejected by EDF sim.
    Any jobs harder than this one can be rejected without doing the sim.


svn path=/trunk/boinc/; revision=15171
2008-05-09 23:01:53 +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 e6a5d0cbfb - scheduler: add new log flags debug_edf_sim_workload, debug_edf_sim_details
for getting info on EDF simulation;
    change output from seconds to hours
- API: remove extern "C" from graphics API
    (convince me it's needed before restoring)

svn path=/trunk/boinc/; revision=15148
2008-05-08 17:48:40 +00:00
David Anderson 418cce805c - scheduler: finished support for job size matching.
Let x be the host speed (expressed in stdevs from mean)
    Let y be the job size (expressed in stdevs from mean)
    Decrement score by (x-y)^2

svn path=/trunk/boinc/; revision=15137
2008-05-06 20:09:07 +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 98041a4866 - Added command-completion script for bash
svn path=/trunk/boinc/; revision=15133
2008-05-06 04:20:32 +00:00
David Anderson 6e6fab3e7c - scheduler: clean up message log.
Merge redundant messages.
    Condition various messages on config flags.
- client (Unix) fix to CUDA detection if LD_LIBRARY_PATH is ""

svn path=/trunk/boinc/; revision=15122
2008-05-02 17:48:29 +00:00
David Anderson d9645557a5 - scheduler: matchmaking scheduler now works;
uncomment MATCHMAKER to enable it.
    More testing needed.
- client (unix): avoid crash if LD_LIBRARY_PATH not set
    (port to 6.1 branch)


svn path=/trunk/boinc/; revision=15115
2008-05-01 22:11:08 +00:00
David Anderson 938d77ce4c - client (Unix) Add /usr/local/cuda/lib/ to LD_LIBRARY_PATH
before looking for CUDA library
- scheduler: some additional work on matchmaker scheduling
    Changed check_app_filter() so that it doesn't depend on
    the current multi-phase approach;
    move that logic to scan_array()


svn path=/trunk/boinc/; revision=15109
2008-04-30 20:31:33 +00:00
David Anderson fbabb7cee7 - web: tweaks to host list
- scheduler: condition lots of log file writes on config flags
    (i.e. divide "debug" output into a bunch of categories, individually selectable)

svn path=/trunk/boinc/; revision=15101
2008-04-26 23:34:38 +00:00
David Anderson 5fd6c676cf - scheduler: fix bug where scheduler sends a WU when
an app version is not available for that platform

svn path=/trunk/boinc/; revision=15088
2008-04-23 23:34:26 +00:00
David Anderson fa6d38a51e - scheduler: fix FCGI compile problem.
FCGI can't use libboinc.a; is needs its own specially-compiled
    versions of everything in lib/


svn path=/trunk/boinc/; revision=15066
2008-04-17 15:43:51 +00:00
David Anderson ad4708aec5 - server: when creating log dir, we were using wrong bit for sticky flag
svn path=/trunk/boinc/; revision=15009
2008-04-02 20:04:06 +00:00
David Anderson 3bb5abf0fa - scheduler: bug fix for case when app version XML is > 64KB
svn path=/trunk/boinc/; revision=15008
2008-04-02 19:57:41 +00:00
David Anderson b33276bee3 - compile fixes for gcc 4.x; fixes #592
svn path=/trunk/boinc/; revision=15007
2008-04-02 19:33:12 +00:00
David Anderson 8ba1188dd0 - Client/server protocol:
send <client_cap_plan_class/> if client understands
    app version plan class.
    The server checks for this instead of version > 6.11.
- clean up unix_util: .h files declare only (extern) interfaces;
    no reason for daemon() to be C

svn path=/trunk/boinc/; revision=15006
2008-04-02 19:05:08 +00:00
David Anderson 6af9f66b4e - DB/feeder/scheduler: change app_version.xml_doc from blob to mediumblob,
and change the correspending structure field from 64KB to 256KB
    (could increase this if needed).
    This is needed to handle app versions with lots (> 100) of files
- change LARGE_BLOB_SIZE to BLOB_SIZE a bunch of places
- Change COPROCS from vector<COPROC> to vector<COPROC*>.
    Otherwise the right virtual functions of COPROCs don't get called

svn path=/trunk/boinc/; revision=14986
2008-03-31 16:19:45 +00:00
Janus B. Kristensen 699ece5668 Changed the error message to reflect that this limit is per-CPU not per-host.
svn path=/trunk/boinc/; revision=14984
2008-03-30 08:05:45 +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 4554fa5ce3 - server and client:
in server->client reply messages and in the client itself,
    move app-planning info from RESULT to APP_VERSION.
    This was necessary to allow anonymous platform info (app_info.xml)
    to specify avg_ncpus, etc.
    e.g., if someone wants to write a multithread version of SETI@home,
    or a GPU/CUDA version,
    they can run it using the anonymous platform mechanism
    and it will be scheduled correctly.

    If a server sends an existing APP_VERSION but with different
    app-planning info, the client will accept and use the new info.

svn path=/trunk/boinc/; revision=14978
2008-03-28 18:00:27 +00:00
David Anderson ee0ca3973c - scheduler: add "distinct_beta_apps" option;
lets users filter out beta apps as well as others
    (from Nicolas Maire)

svn path=/trunk/boinc/; revision=14971
2008-03-27 21:39:02 +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 b2e9fca9bb - forgot to add new files
- scheduler: wreq.core_client_version was being computed in
    resend_lost_results() (which isn't necessarily called)
    but its value was used elsewhere.

svn path=/trunk/boinc/; revision=14948
2008-03-20 03:13:30 +00:00
David Anderson 4e9fbac5e0 - admin web: touch reread_db in manage_app_versions.php
- DB code: remove "is_high_priority" stuff.
- scheduler: merge find_app_version() into get_app_version().
    Have the latter memoize its results (both positive and negative).
    Have it call app_plan() for apps with nonempty plan_class.
- scheduler: first steps towards improved selectability of log messages.
    It will eventually be like the client,
    where you can select among various types of messages.
- feeder: if can't unlink the reread_db trigger file, exit
    (else we'd go into an infinite loop)

svn path=/trunk/boinc/; revision=14940
2008-03-18 21:22:44 +00:00
Reinhard Prix ebcbbb657e fixed internal library dependencies in Makefile.am's
svn path=/trunk/boinc/; revision=14918
2008-03-15 03:26:14 +00:00
David Anderson 8098622210 - Validator framework: remove some consts, and other changes,
to allow validator to assign different credit
    to different instances of a job
- Scheduler: if can't open DB, return <project_is_down/>
    (fixes #578)
- clean up logic of modify_claimed_credit
- feeder: for -priority_order_create_time, use workunitid
    rather than create time (faster for the DB)
from Kevin Reed

svn path=/trunk/boinc/; revision=14908
2008-03-13 23:35:13 +00:00
David Anderson 815b8fc043 Various preparation for handling multithreaded apps
and apps that use coprocessors.
There now can be several app_versions for the same
(app, platform, version_num) combination.
This changes a number of things.

- Added app_version.plan_class field to DB
- update_versions now looks for a :plan-class in the
    file or directory name, and puts it in the app_version's DB record
- Change uniqueness constraint to include plan_class
- Feeder: the feeder was putting non-deprecated app_versions
    in shared mem, and leaving it to the scheduler to
    find the latest version for a given platform.
    This is dumb.
    Instead, for each app/platform pair the feeder now
    finds the highest version number of a non-deprecated app version,
    and enumerates all non-deprecated app_versions with that
    app/platform/version
- Scheduler: add a BEST_APP_VERSION data structure that keeps track,
    for each app, what the best app_version is for this host.
    This saves the work of recomputing it for each job.

svn path=/trunk/boinc/; revision=14906
2008-03-13 22:57:24 +00:00
Eric J. Korpela 0df1c23a89 Fix for projects that have SHED_MSG_LOG::MSG_* in their project specific code.
svn path=/trunk/boinc/; revision=14904
2008-03-13 18:27:23 +00:00
David Anderson cc2f1a20a0 - lib: moved "run program as user" stuff to a separate file,
so it doesn't screw up the linkage of apps that don't use it
- start of server-side support for coprocessors

svn path=/trunk/boinc/; revision=14878
2008-03-10 21:59:27 +00:00
David Anderson 546c0b899a - server: fix botched checkin from 7 March.
The new field (workunit.rsc_bandwidth_bound)
    goes at the END of the record.
    Always do it this way!
- make_work: after creating a batch of new WUs,
    we were waiting 60 sec for the transitioner to
    create the results for them
    (so that our next count of unsent results would be correct).
    This is bogus; if e.g. the transitioner isn't running,
    we'll never get the results, and we'll keep creating WUs forever.

    Instead: explicitly wait for there to be results for
    the last WU from the batch just created.

- scheduler: parse <allow_non_preferred_apps>, <allow_beta_work> correctly.

svn path=/trunk/boinc/; revision=14875
2008-03-10 17:03:15 +00:00
David Anderson 95772cba77 - removed boinc_ncpus_available() and boinc_nthreads() calls.
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
2008-03-07 21:13:01 +00:00
Jeff Cobb 66724e2cd7 Added a #define fseek FCGI_fseek
svn path=/trunk/boinc/; revision=14848
2008-03-05 20:21:58 +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
David Anderson b20f2d915c - server: added a mechanism for submitting jobs as:
> boinc_submit --infile foo --outfile blah program --args
    This will run "program" on a remote host,
    with the given input, output files, and command-line args

    It manages everything for you.
    You don't have to worry about apps, app_versions,
    template files, wrapper job files, etc.
    See: http://boinc.berkeley.edu/trac/wiki/SingleJob

    Initial checkin - not debugged yet.

svn path=/trunk/boinc/; revision=14842
2008-03-04 23:50:38 +00:00
David Anderson 1106da6ec6 - transitioner: we're not supposed to ever see "assigned" WUs.
But if we do, set their transitioner time to plus infinity
    so that we don't see them again.
    (otherwise we go into an infinite loop)
- DB code: remove "high_priority" from queries not from scheduler
    (should probably remove them from there too)
- file_deleter: print error msg if apache user doesn't exist

svn path=/trunk/boinc/; revision=14835
2008-03-03 19:33:32 +00:00
David Anderson 577e4ac47d - make_project: initialize send_result_abort=1 in config file
- web: "least recent" => "oldest", "most recent" => "newest"
- scheduler: change DELAY_NO_WORK_CACHE from 20 min to 0.
    Otherwise, a host that has max_wus_in_progress,
    completes one, and sends a work request before the upload is finished
    will delay (and maybe sit idle) for 20 min.
    Better to have a few extra scheduler requests
    and let the client's backoff take care of things.

svn path=/trunk/boinc/; revision=14822
2008-02-28 21:22:50 +00:00
David Anderson c8384113e4 - changes to many files to fix gcc4.3 compile
svn path=/trunk/boinc/; revision=14811
2008-02-27 23:26:38 +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 b6cc885abf - server: make the special substring for assigned WUs
into a #define's symbol (ASSIGNED_WU_STR)
- scheduler: when send client command to abort a WU,
    include a reason code in the scheduler log

svn path=/trunk/boinc/; revision=14798
2008-02-26 17:24:29 +00:00
David Anderson a09e19b8dc - scheduler: add a general method for excluding hosts from job distribution.
config.xml has optional <ban_os> and <ban_cpu> elements,
    which contain regular expressions matched against
    os_name\tos_version and p_vendor\tp_model.
    If a host matches either one, it's not sent jobs.
- scheduler: fix bug in job assignment
- scheduler: initial (incompleted, commented-out) code for
    matchmaker scheduling
- server programs: declare "SCHED_CONFIG config" in sched_config.C;
    remove declarations of it from all other .C files
    (because I added a vector to it, I can no longer use memset
    to initialize it to zero; instead, it must be a global variable,
    not an automatic)

svn path=/trunk/boinc/; revision=14783
2008-02-25 18:05:04 +00:00
David Anderson e5f1f2f9cb - scheduler: code cleanup: use global var for SCHED_SHMEM
instead of passing it around as argument
    (should do same for request and reply at some point)

svn path=/trunk/boinc/; revision=14781
2008-02-22 22:21:00 +00:00
David Anderson 42d2abfa34 - scheduler: code cleanup, remove "SCHED_MSG_LOG::" from a zillion places
svn path=/trunk/boinc/; revision=14774
2008-02-21 21:00:58 +00:00
David Anderson b7ee06ce3b - remove debugging printfs
svn path=/trunk/boinc/; revision=14773
2008-02-21 20:11:18 +00:00
David Anderson 79f6720547 - scheduler: add <max_ncpus> config option.
Use this with N=1 if your application primarily uses a coprocessor

svn path=/trunk/boinc/; revision=14772
2008-02-21 20:10:10 +00:00
David Anderson 54519a4ee1 - Server: add "job assignment" feature.
Lets you assign a WU to a particular host,
    to one or all hosts belonging to a user or team, or to all hosts.
    See http://boinc.berkeley.edu/trac/wiki/AssignedWork
    Disabled unless you include <enable_assignment> in config.xml
    Uses a new DB table.
    Tested but only a little.
- Server: code cleanup; moved result-handling to a new file,
    and removed the PLATFORM_LIST arg to everything
    (put it in SCHEDULER_REQUEST instead)

svn path=/trunk/boinc/; revision=14767
2008-02-21 00:47:50 +00:00
David Anderson 8ab95a6db9 - scheduler: fix earlier fix to HR race condition.
I was doing "careful update" but not checking
    that the # of affected rows is 1

svn path=/trunk/boinc/; revision=14757
2008-02-18 04:57:27 +00:00
David Anderson 0bcaa761f0 - rename cgi.log to scheduler.log
- fix ops login

svn path=/trunk/boinc/; revision=14747
2008-02-15 15:25:44 +00:00
David Anderson a323eba986 - scheduler: fix bone-head mistake in HR code
svn path=/trunk/boinc/; revision=14715
2008-02-10 05:17:57 +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 4d3e96263b - delete_file: fix bugs and info text
Fixes #551 (from Nicolas)

svn path=/trunk/boinc/; revision=14684
2008-02-06 00:25:34 +00:00
David Anderson dcb2c614a4 - trickle handler: make it compile, and add to Makefile.am
(from Eric Myers)

svn path=/trunk/boinc/; revision=14680
2008-02-05 23:30:28 +00:00
David Anderson a1664cc070 - scheduler: simplified Carl's checkin (avoid virtual destructors)
- API: small tweak for standalone

svn path=/trunk/boinc/; revision=14679
2008-02-05 21:26:43 +00:00
David Anderson 94fdec8b70 - scheduler: send log messages to file, rather than httpd error log,
when using FCGI (from Carl Christensen)

svn path=/trunk/boinc/; revision=14678
2008-02-05 20:16:57 +00:00
David Anderson 7ea74282f4 - client: limit global prefs mod time to now
- server: limit global prefs mod time to now
    These changes address the situation where a server
    sends out prefs with mod time far in the future,
    and there's no way to undo them

svn path=/trunk/boinc/; revision=14664
2008-02-03 21:46:30 +00:00
David Anderson f2761c6f68 - scheduler: get FCGI version to compile
svn path=/trunk/boinc/; revision=14621
2008-01-24 20:22:54 +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 ea8914e7d1 - scheduler: fix weak auth bug
svn path=/trunk/boinc/; revision=14552
2008-01-14 19:59:16 +00:00
David Anderson 2737ab1be7 - scheduler: forgot to add a couple of files
svn path=/trunk/boinc/; revision=14547
2008-01-14 17:17:44 +00:00
David Anderson 8490214d48 - server/web: the weak auth scheme had a major flaw:
It didn't work on a host's first scheduler RPC
    (when it passes an auth but no host ID).
    How do we look up user in this case?
    The weak auth is not stored explicitly in the DB.
    Solution: include the user ID in the weak auth.
    (this invalidates existing weak auths)

svn path=/trunk/boinc/; revision=14546
2008-01-14 16:32:34 +00:00
David Anderson 2be6f8e53a - Client: add <run_apps_manually> config flag.
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
2008-01-13 00:12:14 +00:00
David Anderson d9a663a42e - API: call update_app_progress() only from the timer thread.
Previously it was called from both timer and worker thread,
    with no synchronization.  Bad.
    boinc_finish(): sleep for 2 seconds, enough to ensure that
    the timer thread sends the final messages.
- API: a compile flag GETRUSAGE_IN_TIMER_THREAD selects
    how to get CPU time; by default set only for Mac OS X
- scheduler: cap #CPUs scaling for <max_wus_per_host> at 8

svn path=/trunk/boinc/; revision=14495
2008-01-08 18:58:44 +00:00
David Anderson 300d3ed48f - scheduler: change <max_wus_in_progress> to be per CPU, not per host
svn path=/trunk/boinc/; revision=14475
2008-01-06 22:23:51 +00:00
David Anderson f125e7e2de - web: don't require login for show_user.php
- web: add app selection to example project-specific prefs
    (commented out by default)
- web: in prefs, flag too-low numeric values as errors,
    rather than just setting to min value
- web: fix bug when add new venue from "columns" view

svn path=/trunk/boinc/; revision=14442
2007-12-24 21:34:21 +00:00
David Anderson 1069770a7f - compile fixes for gcc 4.3 (from Frank Thomas)
Fixes #514

svn path=/trunk/boinc/; revision=14436
2007-12-21 21:09:40 +00:00
David Anderson 9248b47032 - API: check for messages from client 10X a second;
this will allow smoother CPU throttling
- delete_file: bug fixes (from Nicolas Alvarez).  Fixes #78

svn path=/trunk/boinc/; revision=14434
2007-12-21 20:57:48 +00:00
David Anderson 820eb30596 - compile fixes
svn path=/trunk/boinc/; revision=14373
2007-12-10 22:13:48 +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 df8cbdb294 - scheduler:
- if WU is infeasible, print message instead of number
    - remove useless messages
    - remove EDF simulations printfs
    - don't update nresults_on_host in resend_lost_work()
        (it's already done in add_result_to_reply())

svn path=/trunk/boinc/; revision=14336
2007-11-30 23:02:55 +00:00
David Anderson 6efd83fb4c - user web: send UOTD email using PHPMailer if available
- user web: don't show team forum in Q&A page
- scheduler: code (commented out) to recognize when
    a sched request is from an existing host
    (same IP/domain/RAM size) and reuse the host record;
    from Kevin Reed

svn path=/trunk/boinc/; revision=14283
2007-11-22 01:52:27 +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
Frank Thomas 19db1ebe51 Added note to sched/fcgi*.h that the file LICENSE.TERMS, on which is referred
to in these files, is not included in the BOINC sources but is available
online.

svn path=/trunk/boinc/; revision=13876
2007-10-17 09:14:33 +00:00
David Anderson 028544e184 - API: get rid of getrusage_mutex to synchronize calls to getrusage()
and access to worker_thread_ru.
    This was being used in the worker signal handler,
    which is bad because pthread_mutex_lock() can allocate memory.
    I don't think this matters; at worst we might get
    CPU times off by < 1 sec.

svn path=/trunk/boinc/; revision=13844
2007-10-12 19:28:30 +00:00
Frank Thomas 6d341df856 Remove the symlinks status and stop on "make clean".
svn path=/trunk/boinc/; revision=13834
2007-10-11 13:24:22 +00:00
Rom Walton 38d4aecc0b Delete outdated .cvsignore files
svn path=/trunk/boinc/; revision=13814
2007-10-09 18:03:21 +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 bb5f54d31f - feeder/scheduler: fix bug where APP.homogeneous_redundancy
is defined as a bool instead of int
    (see its only nonzero value is 1, so the "coarse" HR type is ignored).

svn path=/trunk/boinc/; revision=13786
2007-10-05 22:32:47 +00:00
David Anderson 64db0fa655 - scheduler: bug fix in HR code:
in wu_is_infeasible(), check whether host type is unknown
    before seeing if WU is already committed  to different type

svn path=/trunk/boinc/; revision=13777
2007-10-04 21:55:37 +00:00
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
Adam Kornafeld 2aebae23c5 Changed argument sleep to sleep_interval to match with documantation and other daemons
svn path=/workspaces/kadam/; revision=13661
2007-09-26 00:05:37 +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
Jeff Cobb 9ea5467b45 added an fcgi entry counter
svn path=/trunk/boinc/; revision=12733
2007-05-23 20:42:45 +00:00
Jeff Cobb bad412aebc fcgi_file_upload_handler : compile, and link to, the necessary .o files
svn path=/trunk/boinc/; revision=12732
2007-05-23 20:41:50 +00:00
David Anderson 2fcd2cb7d5 - lib/filesys: do timed retry of delete/rename on Unix as well as Win
- client: sleep 1 sec (not 60) before retry statefile write
- client: parse <credit> in workunit XML
- scheduler: better error messages if insert_wu_tags() fails

api/
    graphics2_unix.C
client/
    client_state.C
    client_types.C
lib/
    filesys.C
sched/
    sched_send.C

svn path=/trunk/boinc/; revision=12720
2007-05-23 03:55:53 +00:00
David Anderson fe68a746fd - scheduler: fix FCGI compile
- API: add files for version 6 graphics

api/
    Makefile.am
    graphics2.C (new)
    graphics2_unix.C (new)
    graphics2_win.C (new)
sched/
    Makefile.am

svn path=/trunk/boinc/; revision=12714
2007-05-22 20:12:45 +00:00
David Anderson 17a83ada30 - feeder: fixed SQL query again
sched/
    feeder.C

svn path=/trunk/boinc/; revision=12707
2007-05-22 02:58:01 +00:00
David Anderson 9b4eff7284 - feeder: the query change of 13 April broke the -random_order,
-priority_order, -priority_order_create_time,and -mod options
    (from Nicolas Maire)

sched/
    feeder.C

svn path=/trunk/boinc/; revision=12703
2007-05-21 15:06:43 +00:00
David Anderson 087aa84915 - scheduler: fix bug that caused crash in anonymous platform case;
don't send result platform or version num if anon platform.
- back end: parse server status-related config elements
    (wwww_host etc.) to avoid XML warnings

sched/
    sched_config.C
    sched_send.C
    server_types.C

svn path=/trunk/boinc/; revision=12701
2007-05-21 14:49:00 +00:00
David Anderson 826e65f8d0 - client simulator: fix cpu_sched_rr_only bug
- boinc_cmd: canonicalize URLs
- user web: fix link to Top Teams
- back end: remove code related to alternate download dir

client/
    cpu_sched.C
    sim.C
html/
    inc/
        stats_sites.inc
    user/
        stats.php
lib/
    boinc_cmd.C
sched/
    file_deleter.C
    sched_config.C,h

svn path=/trunk/boinc/; revision=12694
2007-05-18 22:02:51 +00:00
David Anderson 01f4851323 - scheduler: add max_wus_in_progress option.
Limits total # of in-progress results per host
    (independently of #CPUs)

sched/
    sched_config.C,h
    sched_resend.C
    sched_send.C
    server_types.h


svn path=/trunk/boinc/; revision=12661
2007-05-14 15:21:38 +00:00
David Anderson 0daa5a8802 - translation.inc: backed out change of 7 May;
we need to use " to expand $PROJECT var
- scheduler:
    take work_buf_min into account in deciding whether
    a result will be reported by its deadline.
- all back end programs:
    better error message if can't parse config file

html/inc/
    translation.inc
sched/
    *.C

svn path=/trunk/boinc/; revision=12652
2007-05-11 16:30:13 +00:00
David Anderson a37403a673 - scheduler: add <workload_sim> config option.
If set, the scheduler will use EDF simulation,
    together with the in-progress workload reported by the client,
    to avoid sending results that
    1) will miss their deadline, or
    2) will cause an in-progress result to miss its deadline, or
    3) will make an in-progress result miss its deadline
        by more than is already predicted.
    If this option is not set, or if the client request doesn't
    include a workload description (i.e. the client is old)
    use the existing approach, which assumes there's no workload.
    NOTE: this is experimental.  Production projects should not use it.
- EDF sim: write debug stuff to stderr instead of stdout
- Account manager:
    - if an account is detach_when_done, set dont_request_more_work
    - check done_request_more_work even for first-time projects
- update_uotd: generate a file for use by Google gadget
- user_links(): use full URLs (so can use in Google gadget)

client/
    acct_mgr.C
    work_fetch.C
html/
    inc/
        uotd.inc
        util.inc
    user/
        uotd_gadget.php (new)
sched/
    Makefile.am
    edf_sim.C
    sched_config.C,h
    sched_resend.C
    sched_send.C,h
    server_types.C,h

svn path=/trunk/boinc/; revision=12639
2007-05-10 21:50:52 +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 ca2dead91d - client simulator: make it compile on Win
- client: parse version_num in active_task to avoid spurious error msg

	client/
		app.C
		sim.C
	win_build/
		sim.vcproj

svn path=/trunk/boinc/; revision=12636
2007-05-10 16:07:45 +00:00
David Anderson 78807f659c - scheduler: slight code cleanup prior to adding EDF stuff
languages/translations/
    en.po
sched/
    sched_send.C
    server_types.h

svn path=/trunk/boinc/; revision=12631
2007-05-09 17:45:18 +00:00
David Anderson f6a06c60ac - client simulator:
- Add --server_uses_workload option
            (simulate server that does EDF simulation)
        - Add simulation of exponential backoff when don't get work.
            Otherwise it will keep asking forever.
        - move non-interesting stuff to sim_util.C
    - change simulator code to use ' instead of " in compiled translations
    
    client/
        makefile_sim
        sim_util.C
        sim.C,h
        work_fetch.C
    html/inc/
        translation.inc
    sched/
        edf_sim.C
        edf_sim.h (new)

svn path=/trunk/boinc/; revision=12604
2007-05-08 01:55:28 +00:00
David Anderson d1adc3ab49 sim-related stuff
svn path=/trunk/boinc/; revision=12563
2007-05-04 23:05:17 +00:00
David Anderson 4c76f95a34 - scheduler: in send_result_abort(), distinguish between
the enumeration ending versus it failing.
        This fixes a bug where lots of results would be
        incorrectly aborted if there's a database problem.
        This fix only matters if you use the <send_result_abort> config flag.
        (from Kevin Reed)
    - validator: add -credit_from_wu option.
        This gets credit from the workunit XML
        (which must have a <credit> flag).
        This lets you use credit-from-WU with the standard validators
        (sample_bitwise and sample_trivial)

    sched/
        handle_request.C
        validator.C
        validate_util.h

svn path=/trunk/boinc/; revision=12558
2007-05-04 17:59:50 +00:00
Matt Lebofsky 136ce49b84 svn path=/trunk/boinc/; revision=12536 2007-05-02 23:17:52 +00:00
David Anderson 7ecdc2f44e - Scheduler: in reply, add <platform> element to each <app_version,
and add <platform> and <version_num> elements to <result>
        (server half of multi-version changes)
    - scheduler: make ssp a global; could eliminate from args everywhere

    db/
        boinc_db.h
    sched/
        feeder.C
        main.C,h
        sched_send.C
        sched_shmem.C,h
        server_types.C

svn path=/trunk/boinc/; revision=12535
2007-05-02 23:14:00 +00:00
Matt Lebofsky 846ec9fbb0 svn path=/trunk/boinc/; revision=12532 2007-05-02 18:51:51 +00:00