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
now have community info in a 2nd column on the right.
This accomplishes two things:
1) it puts community info in more places;
2) it provides a reasonable way to format long lists of friends;
they just continue down the right column.
svn path=/trunk/boinc/; revision=14452
Users can choose whether to get 1 email per notification,
a daily "digest" email, or no email.
(All notifications are shown on the Account page).
Currently used for:
- Friend requests and confirmations
- Posts to subscribed threads
- Private messages
NOTE: To implement the "daily digest" feature, projects must add
a periodic task for html/ops/notify.php to config.xml
- web: have project_footer() generate links for
Account Page and Message Boards as well as Home
NOTE: projects that want this change
will have to modify their own project.inc.
svn path=/trunk/boinc/; revision=14447
- 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
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
beneath it.
Otherwise you get "zombie" posts, and e.g. when we should a user's
posts, they might all be hidden.
Also added a script to retroactively clean up these.
svn path=/trunk/boinc/; revision=14325
- user web: improve "team search" function,
and get rid of the superceded "search by name" function
- user web: don't show team founder link to initiate transfer
- user web: show team types
- user web: fix "top teams by type" function
- client: tread NOT_FOUND error on file upload as transient;
it means the project is missing its file_upload_handler
svn path=/trunk/boinc/; revision=14272
should default to off.
Note: it's necessary to clear everyone's flag.
Projects will need to notify users (e.g. via a news item)
that they need to explicitly set this pref if they want email
notification of PMs
svn path=/trunk/boinc/; revision=14255
URL_BASE is assumed to end with a /.
If you put another /, you end up with // in URLs.
This leads to a situation where you can have
one cookie for // and another for / - bad.
If this causes problems for any projects,
they should edit their project.inc accordingly
svn path=/trunk/boinc/; revision=14254
- added some scripts in ops/ for managing HR, and for blocking hosts.
(from M.F. Somers; these should be documented in the WIki
and perhaps added to ops/index.php)
svn path=/trunk/boinc/; revision=14229
1. distinguish between Darwin x86 and Darwin PPC
2. lists the "fail rates" for individual client states to allow to
distinguish between download errors, computing errors and aborts
3. optionally list individual "unknown" OS by name
4. optionally list "unofficial" application versions
3. and 4. are probably rather confusing on open-source projects like SETI,
but I found them helpful e.g. on Einstein
svn path=/trunk/boinc/; revision=14169
- DB: added parent_type to forum
- user web: BoincUser uses caching by default
- client: fixed small memory leak in statistics parsing
svn path=/trunk/boinc/; revision=14130
appointed by the founder, who have most of the same
rights as the founder (edit team info, view/remove users).
They can't, however, change the founder, or select/remove Admins.
- user web: added the ability for founder to delete an empty team
- user web: count/show all team members, not just those with credit
- user web: Team Search returns top team if form fields left blank
- Added db_update.php entry for Eric's banishment_vote stuff
svn path=/trunk/boinc/; revision=14108
live in a different database (and/or server) than the BOINC tables.
Also eliminated the need to call a DB init function.
This involved:
1) adding <bossa_db_host> etc. entries to config.xml
2) prefixing DB name to table name in all Bossa queries
(this is needed if Bossa DB is on same server as BOINC DB,
since we're using persistent connections)
- user web: added Montenegro, and changed Serbia and Montenegro to Serbia
(requires DB update to make latter change in existing records)
svn path=/trunk/boinc/; revision=13962
not the worker signal handler.
There's no reason to call it from the signal handler -
it returns the CPU for the entire process, not the calling thread.
And it may be asynch-signal-handler-unsafe.
- API: comment out checks for bad CPU times.
I don't think this is needed now, and in some cases it's wrong
(multi-threaded apps can accumulate CPU faster than real time)
- API, Unix: in boinc_calling_thread_cpu_time(), don't retry getrusage().
- Bossa: switch to better class structure (suggested by Nicolas Alvarez).
Haven't switched to mysqli yet, but will later.
Also various other Bossa fixes
svn path=/trunk/boinc/; revision=13855
This isn't part of BOINC and eventually
it should go in a different repository,
but for now I'm putting it here.
svn path=/trunk/boinc/; revision=13851
search (keywords, country, type).
Have the new-user scenario route the user through this page.
Also, link to it rather than team.php for existing users.
- user web: use cookies rather than URLs to identify new users,
and show "Welcome to X" when they reach their user page.
- user web: don't show user intermediate page for join/quit team.
Just take them to their user page.
svn path=/trunk/boinc/; revision=13731
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
(fixes#283)
- client: canonicalize URLs in all cmdlines
- db_update.php: don't prompt for DB name/host; get it from config file
(fixes#356)
svn path=/trunk/boinc/; revision=13243
These are stored in a new DB table, "team_delta".
The team founder can view the history in HTML or XML
(links on Management Functions page)
svn path=/trunk/boinc/; revision=13231
- Server status page: if the scheduler isn't running,
it's almost certainly because "stop_sched" is present,
not because Apache isn't running.
Get rid of the use of "sched_pid".
tools/
project.xml
html/ops/
sample_server_status.php
svn path=/trunk/boinc/; revision=12931
- Show latest revision number (code addopted from ChristianB; fix#202);
- Show warning if SYS_ADMIN_EMAIL is not set (from Eric Myers).
svn path=/trunk/boinc/; revision=12747
Instead of editing their source (ugh!)
you can now use command-line args to get testing functionality.
html/ops/
remind.php
mass_email_script.php
svn path=/trunk/boinc/; revision=12494
- server: fix bug that causes PHP scripts not to run from Cron
Fixes#129. From Christian Beer.
html/ops/
update_profile_pages.php
tools/
run_in_ops
svn path=/trunk/boinc/; revision=12488
- 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
- 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
This adds a new link to the OPS page called "List all-error Workunits".
The php script it calls scans the database for Workunits that got at
least min_quorum+1 (number can be configured withing the script)
client errors returned and no successful result (yet). The idea is to
detect problems in the workunit generation or data files.
Scanning the whole result table the script stresses the database a bit,
so some caching has been incorporated (300 sec by default).
svn path=/trunk/boinc/; revision=11250
send mass email to project participants. The script allows
one to select the TYPE of user, including 'all', 'active',
'lapsed', 'unsuccessful' and so on. Also appends a 'how to opt
out' message at the end. Do NOT use this script without testing it.
svn path=/trunk/boinc/; revision=9417
display any user profile pictures until they have been verified by
project admin. When user enters or modifies picture, only they can
see if. If not yet verified, they will see a message saying that
other users can't see it until it has been verified by the project.
If admins have rejected it, user will see a message saying that they
must replace their picture or no one but themselves can see it.
The only known side effect of this is that selection of UOTD is now
includes users with no credit. I will try to fix this.
svn path=/trunk/boinc/; revision=7967
to users/hosts/teams for workunits that have been cancelled or have
otherwise failed with some problem (error_mask!=0). The script
can be run multiple times without doing any harm. Documentation
contained within as a comment.
svn path=/trunk/boinc/; revision=6475
informing the project admin that they need to be explicitly edited to
enable updating the database. This will help prevent inadvertent use.
Thanks to David Hammer.
svn path=/trunk/boinc/; revision=5373
choice selection menus
- Ops pages fixes from Christian Beers and David Hammer:
* some rearrangement of index page
* fix pass percentage by platform pages to show only non-deprecated apps
* all platforms now appear in summary pages of failures
svn path=/trunk/boinc/; revision=5351