Triggering the work generator is now done via the DB
instead of flat files.
Since only E@h uses locality scheduling,
I kept the DB changes in a separate file (db/schema_locality.sql).
There's a new field in the workunit table,
and that's a required update (in db_update.php)
- manager: compile fix
svn path=/trunk/boinc/; revision=20807
Removed my changes of 19 Jan 2010, which didn't work.
Added new mechanism: keep track of whether a job J has ever run in EDF.
If so, and if another job of the same project and resource type as J
is marked as deadline miss, then mark J as deadline miss,
so that it won't get preempted.
- web: change "result" to "task" in server status page
- admin web: show server stable SVN revision, not trunk
svn path=/trunk/boinc/; revision=20805
Old: in a flat file (html/project/project_news.inc)
New: in a forum (called "News" by default)
The script html/ops/news_convert.php copies news from
old to new format.
You'll also need to edit your index.php and use
"show_news(0, 5)" to show news.
- web: added a "message of the day" mechanism.
Edit html/user/motd.php to show a message.
This will be shown as the first news item,
but it's not archived (i.e., it's not a forum post)
svn path=/trunk/boinc/; revision=19949
- default: script can be run from command line;
to run from web you need to be logged in as a particular user.
(in addition to .htaccess protection).
- if include $cli_only at start of script:
can only be run from the command line.
- if include $skip_auth_ops at start of script:
can run from web without being logged in
(this is set ONLY in login_action.php)
- admin web: added $cli_only = true to a bunch of scripts
svn path=/trunk/boinc/; revision=19230
Got rid of auth_ops_cmdline() (not needed).
auth_ops() is now called in util_ops.inc;
every script in html/ops/ must include util_ops.inc.
Note: for existing projects, the admin web interface
will now show "access denied".
Projects must think about what access control policy they want,
and specify it in project.inc
svn path=/trunk/boinc/; revision=19053
(this is separate from login to user pages,
since the cookie path is different).
- admin web: added a framework for project-specified
access control to admin pages.
Can be on the basis of user ID, user flags, etc.
To do this, define functions auth_ops() and auth_ops_cmdline()
in html/project/project.inc
(see the one in project.samples/ for an example)
This is in addition to .htaccess protection.
svn path=/trunk/boinc/; revision=19052
elapsed_time: the elapsed time (runtime) as reported by client
flops_estimate: the app's estimated FLOPS as reported by app_plan()
app_version_id: the DB ID of the app_version used
(or -1 if anonymous platform)
TODO: show these in the web interfaces,
and use them where appropriate
svn path=/trunk/boinc/; revision=19002
don't modify user preferences or CPID.
- client: fix bug that shows ATI version incorrectly
- database: host.posts has been repurposed as a salt (or seqno)
for a new type of weak authenticator that won't depend on password
- web code:
modify forum_preferences.posts instead of host.posts.
(actually, the former isn't used either, we just do a select count(*);
should fix this at some point).
svn path=/trunk/boinc/; revision=18865
- db_update.php: select database (not clear if this ever worked)
- translation: fix bug if have both BOINC and project translation
svn path=/trunk/boinc/; revision=18141
which compiles the translation files into the form
used by the web code.
Projects that don't use "upgrade" will need to do this manually
whenever translation files change.
svn path=/trunk/boinc/; revision=17652
- Removed language interface code (noone seemed to understand/use it anyways)
- Removed a lot of debug. Compiling the language files will now only show whether the compile worked or not
- Removed automatic change-detection. You must now manually trigger compiles using ops/update_translations.php (improves performance slightly)
- Extended tra() to support arbitrary number of arguments
- Random code documentation fixes
- Fixed language override selection page to now correctly show the possible language alternatives
svn path=/trunk/boinc/; revision=16190
(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
- Allow projects to specify how special users can be highlighted in their forums through CSS
- Special users are now highlighted by default
- Post body background is now 25% transparent in browsers that support transparency (white.css only)
svn path=/trunk/boinc/; revision=16134
for a particular (non-ASCII) profile text.
Not sure why, but I rewrote sub_sentence() in
less obscure way and it works now
- web: slight cleanup of translation code.
Can we please replace this with gettext()??
svn path=/trunk/boinc/; revision=16035
added "count" field to DB table to keep track of how many times
we've refreshed.
- show refresh schedule on main courses page
- default for random structure is all units, not 1
svn path=/trunk/boinc/; revision=15846
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
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
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
app executable from boinc_samples/example_app/uc2,
rather than boinc/apps/upper_case.
(boinc_samples must be installed in the same dir as boinc).
The reason: the BOINC autoconf-based build process
produces executables that have zillions of shared library dependencies,
and generally won't run on machines other than
the one where they were built.
Executables built in boinc_samples/ don't have this problem.
svn path=/trunk/boinc/; revision=15509
it was already decremented when the post was hidden
- Added a function to forum_repair.php to fix inconsistencies
due to the above bug
svn path=/trunk/boinc/; revision=15433
(fix links on profile-index pages)
- web: use cache-control "no-store" only for home.php.
This makes it so that, e.g. if you scroll to the middle of a long page,
follow a link, then click Back,
you'll go back the original scroll position rather than top of page.
svn path=/trunk/boinc/; revision=15391
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
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
- 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
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
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
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
- web: remove get_transform_settings_from_user().
There's only get_output_options()
NOTE: why is text_transform() doing stripslashes()?
The slashes shouldn't be in the DB in the first place.
There's some fundamental confusion here.
- web: fix uotd.php
svn path=/trunk/boinc/; revision=14866
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
> 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
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
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
which added only confusion.
Implement login directly, using cookies.
- All cookie setting/clearing now goes through two functions,
send_cookie() and clear_cookie().
These deal with path and expiry
(e.g. if you want to have different language or forum settings
on two projects on the same server, that now works).
svn path=/trunk/boinc/; revision=14735
The meaning of the <screen_profiles> config flag is:
If set:
profiles must be screened by admins before their photo is shown.
When this is done, profile.verification is set to 1
(and they become eligible to be UOTD)
If not set:
profile photos are always shown.
Profiles must be screened by admins before
they are eligible for UOTD.
When this is done, profile.verification is set to 1
So default_uotd_candidates_query() is the same in either case.
- web: fix profile_screen_form.php
(admin page for screening profiles)
- web: make a copy of login_action.php in ops/
svn path=/trunk/boinc/; revision=14561
in Apache's search path
- web: show UOTD text correctly
- web: memoize profile_screening() in attempt to fix out-of-memory error
when building profile pages on S@h
- web: move gallery.inc into update_profile_pages and remove it
svn path=/trunk/boinc/; revision=14460