- 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
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
- 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
- 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
- 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
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
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
causing a potential loss of precision.
Change it to double (same as atof())
- When moderator locks a thread, let them specify reason
svn path=/trunk/boinc/; revision=14662
Projects should copy or merge
project.sample/project_specific_prefs.inc
- screensaver: change
Running research for PROJECT
Workunit: X
to
Computing for PROJECT
Task: X
svn path=/trunk/boinc/; revision=14637
(should this be set by default?)
- web: removed addslashes() when building language translation arrays.
These caused 's to be displayed as \' everywhere.
They may serve some purpose, but I can't think of what it is.
- web: changed max profile image dimensions from 800x600 to 640x480.
The new profile page puts a column to the right
of the image, so it shouldn't be quite that wide.
svn path=/trunk/boinc/; revision=14562
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
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
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
(this causes confusing output in the Manager,
bytes xferred greater than file size)
- API and client: make boinc_sleep() work regardless of signals
- some code cleanup in http_curl.C
svn path=/trunk/boinc/; revision=14522
This was because SIGALRM always interrupts sleep()
and keeps boinc_sleep() stuck in its while loop.
Solution: change boinc_sleep() so that it works even if
rapid signals (e.g. interval timer) are happening
- API: remove deprecated graphics files from Makefile.
Old-style graphics are no longer supported.
- web: add empty show_user_donations_private() to donations.inc
svn path=/trunk/boinc/; revision=14513
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
This lets you create a project for Bossa or Bolt
without compiling the C++ stuff, which is not used by Bossa or Bolt.
- DB schema: change type= to engine= to avoid MySQL warning messages
svn path=/trunk/boinc/; revision=14437
- May as well start keeping checkin notes for Bolt.
At this point the fundamental structure of Bolt is
more or less complete, I hope; many features are missing.
Items for this particular checkin:
- Make things work right when you resume a course at an
exercise answer page.
This creates a new View, whose prev_view_id link points
to the exercise view, not the answer page view
- When leave a page using "Up", terminate the view accordingly.
- Rather than using $_GET, Form vars are now passed to exercise primitives
in a global variable $bolt_ex_query_string, which they must parse.
svn path=/trunk/boinc/; revision=14414
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
rename General Prefs to Computing Prefs;
rename Forum Prefs to Community Prefs
add Prefs link if user doesn't have email PM notification
- remove forum low/high rating theshold stuff.
Message rating was a failed experiment.
svn path=/trunk/boinc/; revision=14300
strip HTML tags from text (e.g. to remove photos)
- user web: show_image(): separate title (tooltip text)
from "alt" (replaces image if images disabled).
The latter must be terse.
- user web: show_button(): make it work even if Javascript disabled
svn path=/trunk/boinc/; revision=14294
- user web: highlight subscribed threads using green background
- user web: hyperlink thread titles in search results
svn path=/trunk/boinc/; revision=14286
moderation and red-X events, as well as team founder
- user web: admins can view team join/quit history
(which no longer contains email addresses)
- user web: update text describing admin privileges
svn path=/trunk/boinc/; revision=14285
- 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
- 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
For thread titles, show links to forum/category also
For posts, show complete post, with search terms highlighted.
- user web: in display of posts for a user,
show links to thread and forum also
- user web: posts/threads can become "orphaned" if their forum
disappears, e.g. team message board is deleted.
Handle this gracefully in search results and user post list
- user web: where HTML tags are allowed, say so
- user web: fix bug where wrap_postcounts weren't being shown in form
- DB: use "tinyint" instead of "tinyint(1) unsigned" etc.
svn path=/trunk/boinc/; revision=14267
don't include the account key in the URL.
Rather, include the user ID, the time, and
a have of the ID, time, and account key.
Honor this for 1 day.
svn path=/trunk/boinc/; revision=14265
- login form now has ONLY email/passwd
("login with account key" is gone)
- "forgot password?" takes you to a page with two options:
1) type in email address, get an email with login link
2) instructions for recovering account key from BOINC account file
- email is stripped-down, has login link and not much else
fixes#190
svn path=/trunk/boinc/; revision=14263
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
send email notifications to team founder (not project admin)
- user web: let project admins (S_ADMIN) moderate team forums
svn path=/trunk/boinc/; revision=14245
don't show his email address to team founder
- user web: change wording on project prefs page to clarify
that emails may come from project OR team
- user web: let team founder delete message board
svn path=/trunk/boinc/; revision=14232
- add more info about team message board (if it exists)
- show list of admins
- show list of new members (in last 24 hours)
- show number of members total, with credit, and with average credit
- move actual list of members to new page (team_members.php)
svn path=/trunk/boinc/; revision=14230
- 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
email addresses to team admins,
also show the user's "send_email" flag,
indicating whether the agreed to get "email newsletters"
from the project.
If this is set, teams should NOT send email to that user.
Ideally, we should have a separate preference for whether
to get email from team
(or show email address to team admins at all)
Fixes (more or less) #479
svn path=/trunk/boinc/; revision=14220
Team founder and admins have moderator power.
Anyone can view a team message board,
but only team members can write to it.
Users cannot be banished from team message boards
(due to database limitations).
svn path=/trunk/boinc/; revision=14218
into a separate function.
Don't show subtitle bar for categories with no name.
Rename search_post_titles() to search_post_content()
svn path=/trunk/boinc/; revision=14209
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
- If a request is pending, notify the current founder
in red on their Account page.
(previously there was no notification on the web;
if the founder didn't get the notification email,
they'd never find out; and if they read but lost the email,
they'd lose the URL they needed to visit to decline).
- Also notify current founder on the Admin Functions page
- On the team page
requesting user: show that request is pending, and the deadline.
founder: show that request is pending, link to respond
other users: show Deferred if can't make a request yet
- Say 90 days instead of 60 days where appropriate;
other text cleanup
- user web: team_change_founder_action.php was generating
a different name for each element of a radio button group.
That makes it not a radio button.
svn path=/trunk/boinc/; revision=14117
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
This lets you lookup up users sorted by
- descending join time
- descending total credit, or
- descending RAC
and lets you filter them by
- country
- presence/absence of team
- presence/absence of profile
It's implemented in such a way that no more than N
DB rows are examined
(i.e. it doesn't necessarily show you all the results)
- PHP database: add enum_fields() member to DbConn and BoincUser.
This is to select a limited number of fields
e.g. to make large queries more efficient.
Also added BoincTeam::lookup_id_cache(); this is an example
of how to look up items likely to be repeated
(like teams when you're showing a list of users)
svn path=/trunk/boinc/; revision=14082
- changed Private Messages interface so that you see
all your messages on one page,
and remove various redundant links
(like the Inbox link on the Inbox page)
- changed links to buttons for moderator functions
svn path=/trunk/boinc/; revision=14019
- replace some links with buttons in forum pages; add hover text.
- show "mark all threads as read" only in forum page
- fix bugs in team creation
svn path=/trunk/boinc/; revision=14016
add a function show_button() to display links as buttons
with hover-based explanation.
This should be used whenever clicking on something
performs an action, rather than just going to a new page
(sometimes the boundary is fuzzy)
- user web: fixed bug when send private message by user name
svn path=/trunk/boinc/; revision=14015