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
"client state", and "outcome" into a single status.
The fact that there are three separate status fields
is an implementation detail that users don't need to see.
svn path=/trunk/boinc/; revision=17599
There are two mechanisms to prevent the scheduler from
sending jobs that won't finish by their deadline.
Simple mechanism:
The client sends the interval x for which CPUs are projected
to be saturated.
Given a job with estimated duration y,
the scheduler doesn't send it if x + y exceeds the delay bound.
If it does send it, x is incremented by y.
Complex mechanism:
Client sends workload description.
Scheduler does EDF simulation, sees if deadlines are missed.
The only project using this AFAIK is BOINC alpha test.
Neither of these mechanisms takes coprocessors into account,
and as a result jobs could be sent that are doomed to
miss their deadline.
This checkin adds coprocessor awareness to the Simple mechanism.
Changes:
Client:
compute estimated delay (i.e. time until non-saturation)
for coprocessors as well as CPU.
Send them in scheduler request as part of coproc descriptor.
Scheduler:
Keep track of estimated delays separately for different resources
- client: fixed bug that computed CPU estimated delay incorrectly
- client: the work request (req_secs) for a resource is the min
of the project's share and the shortfall.
svn path=/trunk/boinc/; revision=17086
The bug caused the default language to be ignored if set to "English"
regardless of whether this was done through the browser or through a
cookie.
svn path=/trunk/boinc/; revision=17012
- Added translation awareness to view_profile.php
- Added translation awareness to show_user.php
- Added cacheability to the community_links() by splitting it into a function for getting the cacheable object "get_community_links_object()" and another for displaying it "community_links()"
- Added the community_links cacheable object to the cache in show_user.php
- Changed view_profile.php from being full-page cached to using data caching. Only the community_links object is cached as that is the only one containing heavy queries. All other queries are simple and will be cached at the SQL query cache level.
svn path=/trunk/boinc/; revision=16749
- 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
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
- add a "forgot email address?" link
- change text to say that the authenticator method can be used
in case of forgotten email OR forgotten password
- if bad password on login, show them the login form again
(with email field populated)
instead of a harsh failure message
- if bad email on login, show login form again instead of harsh message
- update authenticator method instructions
with new BOINC data directory paths
svn path=/trunk/boinc/; revision=16399
- 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
- web: remove file_get_contents() workaround for PHP4
- web: If Akismet or ReCaptcha failure,
display the form again with a warning message at the top.
That way the user doesn't lose the text they just typed.
svn path=/trunk/boinc/; revision=16175
(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
- Fix missing newline after "Send message" button in authorcol
- Added CSS class forum_toplinks for links at the top of forum pages
svn path=/trunk/boinc/; revision=16048
- Fix CSS compatibility issues towards IE6-series of browsers
- Buttons will now light up when hovering over them with the mouse
svn path=/trunk/boinc/; revision=16047
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
e.g. it handles <foo /> correctly,
and handles <foo attr="x">
(it doesn't return the attributes, but it doesn't choke on them).
- GUI RPC client lib:
use XML_PARSER to process authorization replies,
e.g. so that it handles <authorized />
TODO: use XML_PARSER to parse all GUI RPC requests and replies
- web: add a CSS entry for news item titles
- web (news items): add an optional "category" field to news items:
suggested values: "server status", "news", "emergency".
These are not used to display the items,
but are passed in the RSS feed and could be used by news aggregators.
- manager: replace "BOINC-based account managers" with "account managers"
svn path=/trunk/boinc/; revision=16028
- client: don't leak process handles when abort jobs
- client: if an app exits or we kill it, always destroy the shmem segment.
- web: more HTML 4.01 Transitional conformity changes
svn path=/trunk/boinc/; revision=15865
(language_select.php wasn't working)
- tr.po had some syntax error, and was way out of date.
replaced it with en.po
svn path=/trunk/boinc/; revision=15858
"HTML 4.01 Transitional" test.
The BOINC home page, project home page, and forum index now pass.
- web: .po files need to have CHARSET, LANG_NAME_NATIVE,
and LANG_NAME_INTERNATIONAL
svn path=/trunk/boinc/; revision=15855
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
(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
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
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
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
- client: change CUDA detection on Linux and Mac.
Look for libcuda.so in /usr/lib/nvidia and /usr/lib64/nvidia.
If we find it, assume that libcudart is in the library path.
svn path=/trunk/boinc/; revision=15477
don't create shmem segs in global name space.
Hopefully this will fix a bug
(on Vista, UAC off, non-protected install)
where apps fail to attach to shmem.
svn path=/trunk/boinc/; revision=15444
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
There are two aspects:
1) undoing magic quotes (if it's being used).
This must be done for all GET and POST string inputs.
It is now done automatically by get_str() and post_str().
The places that refer to $_GET and $_POST directly
must do it themselves using undo_magic_quotes().
2) Escaping user-supplied strings before using them in DB queries.
This is done by process_user_text()
(which should be renamed db_escape_string()).
The new principle:
call process_user_text() in the function that does the DB query
(not at any higher level).
svn path=/trunk/boinc/; revision=15389
1) it's not correct to apply stripslashes() to all form input.
That should be done only if magic quotes is on.
I fixed this by adding a function undo_magic_quotes()
that does the right thing.
2) There's no reason to strip backslashes from user-supplied text
(forum titles and bodies, private messages, passwords etc.)
I'm not sure why this was being done.
It prevented messages from containing backslashes.
svn path=/trunk/boinc/; revision=15364
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
so there was no way of rescuing a team with invalid founder email.
I changed it to record the request anyway.
This is potentially hazardous - if the founder's email server
is temporarily down, the request would go through
without the founder being notified.
To offset this, I added a notification via private message.
svn path=/trunk/boinc/; revision=15296
If present, don't show anything related to computing.
Use this for Bossa/Bolt projects, and the BOINC message boards.
svn path=/trunk/boinc/; revision=15228
- 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
- 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
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
- 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
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
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
- 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