From 5132e091990834d99daf453e7ff0aefe9d1573fd Mon Sep 17 00:00:00 2001 From: David Anderson Date: Wed, 1 Dec 2004 05:03:53 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=4690 --- checkin_notes | 21 +++++++++++++++++++++ client/cs_account.C | 2 +- client/main.C | 2 +- db/boinc_db.C | 4 +++- doc/boinc_dev.php | 21 ++++++++++++++++++++- doc/project_cookbook.php | 7 ++++--- doc/tool_update_versions.php | 26 +++++++++++++------------- doc/tools_work.php | 2 +- doc/validate.php | 4 +++- 9 files changed, 67 insertions(+), 22 deletions(-) diff --git a/checkin_notes b/checkin_notes index 87d96ce5a7..a5034f5cdf 100755 --- a/checkin_notes +++ b/checkin_notes @@ -20372,3 +20372,24 @@ Bruce 30 Nov 2004 db_ops.inc sched/ db_purge.C + +David 30 Nov 2004 + - fixed a bug in DB_VALIDATOR_ITEM_SET::update_result(): the lines + "server_state=%d, outcome=%d, opaque=%lf" + "where id=%d", + produce a bad SQL query (e.g. opaque=0.0000where id=4) + - fixed a bug in the transitioner: + TRANSITIONER_ITEM::enumerate() and query() + weren't reading "need_validate". + In some (rare) cases this would cause the flag + to get incorrectly cleared by the transitioner + + NOTES: + - ALL VALIDATORS SHOULD BE RECOMPILED + - RECOMPILE THE TRANSITIONER + + db/ + boinc_db.C + client/ + cs_account.C + main.C diff --git a/client/cs_account.C b/client/cs_account.C index 96fe4ec30c..c270e87a0f 100644 --- a/client/cs_account.C +++ b/client/cs_account.C @@ -238,7 +238,7 @@ int CLIENT_STATE::add_project(const char* master_url, const char* _auth) { safe_strcpy(auth, _auth); strip_whitespace(auth); if (!strlen(auth)) { - msg_printf(0, MSG_ERROR, "Invalid account ID: %s", auth); + msg_printf(0, MSG_ERROR, "Invalid account key: %s", auth); return ERR_AUTHENTICATOR; } diff --git a/client/main.C b/client/main.C index 5772ce08fc..4ce24643a3 100644 --- a/client/main.C +++ b/client/main.C @@ -60,7 +60,7 @@ void project_add_failed(PROJECT* project) { if (project->scheduler_urls.size()) { printf( "BOINC failed to log in to %s.\n " - "Please check your account ID and try again.\n", + "Please check your account key and try again.\n", project->master_url ); } else { diff --git a/db/boinc_db.C b/db/boinc_db.C index 14f122bac4..55e1309b31 100644 --- a/db/boinc_db.C +++ b/db/boinc_db.C @@ -643,6 +643,7 @@ void TRANSITIONER_ITEM::parse(MYSQL_ROW& r) { strcpy2(name, r[i++]); appid = atoi(r[i++]); min_quorum = atoi(r[i++]); + need_validate = atoi(r[i++]); canonical_resultid = atoi(r[i++]); transition_time = atoi(r[i++]); delay_bound = atoi(r[i++]); @@ -684,6 +685,7 @@ int DB_TRANSITIONER_ITEM_SET::enumerate( " wu.name, " " wu.appid, " " wu.min_quorum, " + " wu.need_validate, " " wu.canonical_resultid, " " wu.transition_time, " " wu.delay_bound, " @@ -924,7 +926,7 @@ int DB_VALIDATOR_ITEM_SET::update_result(RESULT& res) { sprintf(query, "update result set validate_state=%d, granted_credit=%.15e, " - "server_state=%d, outcome=%d, opaque=%lf" + "server_state=%d, outcome=%d, opaque=%lf " "where id=%d", res.validate_state, res.granted_credit, diff --git a/doc/boinc_dev.php b/doc/boinc_dev.php index a06b508a55..4d12a64420 100644 --- a/doc/boinc_dev.php +++ b/doc/boinc_dev.php @@ -4,7 +4,24 @@ echo "

-The BOINC source code is here. +

Source code

+You can get the BOINC source code in several ways: + +

+Source code for a typical BOINC application, +SETI@home, is here.

If you are an experienced C++ system programmer you may be able to help us maintain and enhance BOINC. @@ -15,6 +32,8 @@ You should understand exactly how BOINC is supposed to work (for both participants and developers) before getting into the source code. + +

Bug database

View database of bugs and feature requests

diff --git a/doc/project_cookbook.php b/doc/project_cookbook.php index 59e2b661bf..51d8b57e9b 100644 --- a/doc/project_cookbook.php +++ b/doc/project_cookbook.php @@ -9,7 +9,8 @@ Make sure MySQL is configured and running.

  • Run HOME/boinc/tools/make_project
  • Append the contents of projects/PROJECT/PROJECT.httpd.conf to httpd.conf and restart Apache. -
  • Insert a cron job to run the project's periodic tasks, e.g. +
  • Use 'crontab' to insert a cron job to run the project's +periodic tasks, e.g.
    0,5,10,15,20,25,30,35,40,45,50,55 * * * * HOME/projects/PROJECT/bin/start --cron
    (if cron cannot run 'start', try using a helper script to set PATH and PYTHONPATH) @@ -19,8 +20,8 @@ edit it to taste, and run bin/xadd.
  • Edit html/project/project.inc, changing the master URL and copyright holder. -
  • Using htpasswd, -add .htaccess and .htpasswd files to html/ops. +
  • Protect the html/ops directory +(e.g. by putting .htaccess and .htpasswd files there). Visible result: the project web site is up. diff --git a/doc/tool_update_versions.php b/doc/tool_update_versions.php index b1fba8c505..0e14162f62 100644 --- a/doc/tool_update_versions.php +++ b/doc/tool_update_versions.php @@ -1,10 +1,8 @@ Releasing application versions - The update_versions script releases new application versions. It makes the needed database entries and copies files @@ -20,6 +18,7 @@ with the same name as the application. Put new application versions here. update_versions scans these directories for new application versions. +
  • Run bin/update_versions

    @@ -49,22 +48,23 @@ Recommended code-signing practices are described here. -

    Minimum core version

    -Application versions have a field min_core_version which, -if nonzero, indicates the minimum core client version number +

    Min/max core version

    +Application versions have fields min_core_version +and max_core_version which, if nonzero, +indicates the range of core client version numbers to which the application version should be sent. Update_versions, by default, sets this to the largest core client version number in the database. -You can disable this by editing update_versions, -or by manually changing the app_version record. +To change this, you can manually edit the app_version record.

    Multiple-file application versions

    -Application versions can consist of multiple files. -Follow the above procedure, but create a directory -with the given name, and put the files in that directory. -The executable file with the lexicographically first name -will be treated as the main program. +Application versions can consist of multiple files, +one of which is the main program. +To create a multiple-file application version, +create a directory with the same name as the main program +(of the form NAME_VERSION_PLATFORM[.ext]). +and put the files in that directory.

    Releasing core client versions

    diff --git a/doc/tools_work.php b/doc/tools_work.php index 83a6599016..4c44ccda25 100644 --- a/doc/tools_work.php +++ b/doc/tools_work.php @@ -87,7 +87,7 @@ The result file template is macro-substituted as follows: 'wuname_resultnum_n' where wuname is the workunit name and resultnum is the ordinal number of the result (0, 1, ...).
  • -<UPLOAD_URL> is replaced with the upload URL. +<UPLOAD_URL/> is replaced with the upload URL.

    diff --git a/doc/validate.php b/doc/validate.php index 38f7e8cf66..c6738a0a27 100644 --- a/doc/validate.php +++ b/doc/validate.php @@ -27,7 +27,8 @@ be granted for correct results for this workunit.

  • If, when an output file for a result has a nonrecoverable error -(i.e. the directory is there but the file isn't), +(e.g. the directory is there but the file isn't, + or the file is present but has invalid contents), then it must set the result's outcome (in memory, not database) to VALIDATE_ERROR. Note: the function try_fopen() (in lib/util.C) can be used @@ -59,6 +60,7 @@ In the absence of errors, it sets the new result's validate_state to either VALID or INVALID.
  • If it has a nonrecoverable error reading an output file of either result, +or if the new result's output file is invalid, it must set the new result's outcome (in memory, not database) to VALIDATE_ERROR.