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
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
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
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
"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
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
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
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
- 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
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
- 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
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
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
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
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
(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
(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
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
- 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
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
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
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
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
- 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
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
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
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
- 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
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
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
in the project home directory.
It contains the output of /usr/bin/svnversion,
i.e. the code revision from which the server software was built.
- Web files that create directories now give them g+rwx permissions
html/inc/
cache.inc
translation.inc
sched/
edf_sim.C
tools/
make_project
upgrade
svn path=/trunk/boinc/; revision=12521
- Exteded the "altername_platform" mechanism to x86_64 linux
and solaris. The current alternate platforms found by configure
are...
x86_64-pc-linux-gnu -> i686-pc-linux-gnu
sparc64-sun-solaris -> sparc-sun-solaris
sparc-sun-solaris -> sparc-sun-solaris2.7
powerpc64-apple-darwin -> powerpc-apple-darwin
- The alternate platform can be overridden on the configure command line
--with-boinc-alt-platform="platformname"
m4/
boinc_platform.m4
sched/
Makefile.am
client/
client_state.C
cs_scheduler.C
client_state.h
svn path=/trunk/boinc/; revision=12467
- Server: add new database field host.error_rate.
Stores a dynamic estimate of the fraction of the hosts's
results that fail validation (updated by the validator).
client/
sim.C
cs_prefs.C
db/
boinc_db.C,h
html/ops/
db_update.php
sched/
handle_request.C
sched_msgs.h
validator.C
svn path=/trunk/boinc/; revision=12466
- scheduler: accept elements of the form
<alt_platform>
<name>windows_x86</name>
</alt_platform>
in request messages.
These are platforms that the client can handle,
other than its main one,
listed in order of decreasing preferences.
fixes#81.
sched/
handle_request.C
server_types.C,h
svn path=/trunk/boinc/; revision=12423
- Change things so that make_project installs a test application
(uppercase) and the daemons to go along with it
(sample_work_generator, sample_bitwise_validator, sample_assimilator).
This is mostly working, not completely.
apps
upper_case.C
html/ops/
mass_email_script.php
py/Boinc/
setup_project.py
sched/
sched_config.C,h
sample_work_generator.C
tools/
make_project
project.xml
Makefile.am
svn path=/trunk/boinc/; revision=12422
<no_forum_rating> tag.
- locality scheduler: when getting a working set file name
using glob(3), do not glob multiple times, possibly getting
back the same file name again. Instead glob once and then
randomly choose file names, crossing items off the list one
at a time. Note: I wrote this code using STL vectors and
strings, but now regret this: the necessary vector insertions
are potentially inefficient.. Sometime next week I will
recode this using a C-style pointer arrays with guaranteed O(1)
efficiency. But I want to get this into CVS while it's
working.
- locality scheduler: fix is_host_slow() function following
David's Jan 12 checkins to use claimed_credit_per_cpu_sec.
svn path=/trunk/boinc/; revision=12156
stale .nfs* lockfile which was more than 60 days older than the oldest WU.
This should not happen! After these modifications, antique deletion
will not be turned off, but a CRITICAL error message will be logged.
svn path=/trunk/boinc/; revision=11548
have inserted a new averaging function
update_credit_per_cpu_sec() into lib/util.C. This function
should be called from validator.C, and then the value of
credit_per_cpu_sec should be exported by db_dump.C in the
host_id.gz stats file.
David, Eric, if you could check the code and logic here I would
be grateful. This is currently disabled in validator.C with
a #ifdef macro. I won't enable it until we've agreed on this.
svn path=/trunk/boinc/; revision=11136
to send different work to slow and fast hosts. I'm experimenting with
the use of this in the locality scheduler.
svn path=/trunk/boinc/; revision=10390
to send different work to slow and fast hosts. I'm experimenting with
the use of this in the locality scheduler.
(DAVID: please check that the one-line change in handle_request.C is
globally harmless.)
svn path=/trunk/boinc/; revision=10388
(1) over and (2) validate state init and (3) NOT file_delete==INIT.
(David, please bless addition of file_delete_state to SCHED_RESULT_ITEM.)
svn path=/trunk/boinc/; revision=10245
which may modify an EXISTING & OVER result in the database.
file_upload_handler: check for 'stop_upload' trigger file in the
project root directory. If so, return ERR_TRANSIENT to hosts which
attempt uploads. This is the equivalent of 'stop_sched' for the
scheduler. (Eric, you may want to check that this is FCGI compatible).
svn path=/trunk/boinc/; revision=10227
requests: cache_l[123] and cpu_caps. These appear not to be
anywhere in the source code tree or documented anywhere!!
svn path=/trunk/boinc/; revision=10191
bug that might have been introduced ~ March 11, which is marking
some 'in progress' results as 'client error' and triggering
the transitioner.
svn path=/trunk/boinc/; revision=10189
transitioner will not sent the transition_time to INT_MAX
UNLESS a canonical result has been found. Otherwise it is
set to MAX(ten days, 1.5*delay_bound) in the future. This
ensures that the transition will 'see' the workunit again
if no canonical result has been found.
svn path=/trunk/boinc/; revision=10185
of teams are calculated but were not written back into the database.
Also, change algorithm so that for hosts/teams/users, when the RAC
(Recent Average Credit) values have decayed to exactly 0.0 (double
precision) then neither expavg_credit nor expavg_time are updated.
In this way, by looking at the value of expavg_time, you can see
exactly WHEN the RAC decayed to zero. This effectively indicates
the 'drop-out-date' for the host/team/user.
svn path=/trunk/boinc/; revision=9283
because host has been cloned. If result is resent to
the 'new' host then this can make it appear that the
result was completed shortly after it was sent.
svn path=/trunk/boinc/; revision=9210
WU, I need to separate two types of 'sticky/report on RPC' files.
One type is used for WU names of the form FILE__ and the others
are auxilliary. David, after I've talked with you I'll either
generalize this notion or we can eliminate it.
svn path=/trunk/boinc/; revision=9131
Cleanup of parameters that define disk free space requirements.
Previously these were spread around in different places. Now
these are defined by some config.xml options that are used by
PHP pages and by the scheduler code. See a description in
doc/configuration.php.
svn path=/trunk/boinc/; revision=9081
space prefs agree with web page. Bruce's note: this may require
further fixes for two cases. First, if the project prefs are
not the same as BOINC defaults. Second, if the user doesn't want
BOINC to leave any disk space free and on their web preference page
sets 'leave X bytes free' to zero, then this patch will assume they
mean 100MB. But I'm still applying the patch 'cause Walt says that
this is keeping lots of new users from getting work.
svn path=/trunk/boinc/; revision=8954
Trigger file to re-read database is now reread_db in the project
root direcory, consistent with other BOINC trigger files, rather
than in the tmp_project_name subdirectory.
Log detection/removal of trigger file.
svn path=/trunk/boinc/; revision=8696