*** empty log message ***

svn path=/trunk/boinc/; revision=4217
This commit is contained in:
David Anderson 2004-09-21 19:58:30 +00:00
parent 989cc112db
commit 83a77b784f
12 changed files with 174 additions and 53 deletions

View File

@ -17490,7 +17490,8 @@ Lana 20 Sept 2004
backend_lib.C
Rom 20 Sept 2004
- NEWGUI: Refactor all view logic to accommodate the new task based interface.
- NEWGUI: Refactor all view logic to accommodate
the new task based interface.
- NEWGUI: Add the new projects task pane.
- NEWGUI: Stub the other tabs.
- NEWGUI: Include new visuals for the task based UI.
@ -17505,8 +17506,23 @@ David 21 Sept 2004
profile.inc
Lana 21 Sept 2004
- added getting value of the cpu_sched_period for the client from the global prefs
- added getting value of the cpu_sched_period
for the client from the global prefs
client/
prefs.h
prefs.C
David 21 Sept 2004
- parse_state_file():
If client_state.xml doesn't exist, try client_state_next.xml.
If the resulting file is empty, try client_state_prev.xml
This should hopefully fix cases of state file corruption on crash
- change request delay from 1 hour to 1 day for:
- no work for this platform
- core client out of date
client/
cs_statefile.C
sched/
sched_send.C

View File

@ -40,9 +40,18 @@ int CLIENT_STATE::parse_state_file() {
PROJECT *project=NULL;
int retval=0;
int failnum;
char *fname;
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_STATE);
if (!boinc_file_exists(STATE_FILE_NAME)) {
// Look for a valid state file:
// First the regular one, then the "next" one.
//
if (boinc_file_exists(STATE_FILE_NAME)) {
fname = STATE_FILE_NAME;
} else if (boinc_file_exists(STATE_FILE_NEXT)) {
fname = STATE_FILE_NEXT;
} else {
scope_messages.printf("CLIENT_STATE::parse_state_file(): No state file; will create one\n");
// avoid warning messages about version
@ -52,14 +61,23 @@ int CLIENT_STATE::parse_state_file() {
return ERR_FOPEN;
}
FILE* f = fopen(STATE_FILE_NAME, "r");
FILE* f = fopen(fname, "r");
MIOFILE mf;
mf.init_file(f);
fgets(buf, 256, f);
if (!match_tag(buf, "<client_state>")) {
msg_printf(NULL, MSG_ERROR, "Missing open tag in state file.\n");
retval = ERR_XML_PARSE;
goto done;
// if file is invalid (probably empty), try the previous statefile
//
fclose(f);
f = fopen(STATE_FILE_PREV, "r");
mf.init_file(f);
fgets(buf, 256, f);
if (!match_tag(buf, "<client_state>")) {
msg_printf(NULL, MSG_ERROR, "Missing open tag in state file.\n");
retval = ERR_XML_PARSE;
goto done;
}
}
while (fgets(buf, 256, f)) {
if (match_tag(buf, "</client_state>")) {

View File

@ -8,7 +8,7 @@ it consists of a program (perhaps with versions for different platforms)
and a set of workunits and results.
A project can operate many applications.
Applications are maintained in the <b>application</b> table in the BOINC DB,
and can be created using the <a href=tools_other.php>add</a> utility.
and can be created using the <a href=tool_xadd.php>xadd</a> utility.
<p>
An application program may go through a sequence of
@ -54,8 +54,8 @@ files that make up the application version:
&lt;/file_ref&gt;
&lt;/app_version&gt;
</pre>
Application versions can be created using the
<a href=tools_other.php>add</a> utility program.
Application versions can be created using
<a href=tool_update_versions.php>update_versions</a>.
";
page_tail();
?>

View File

@ -30,6 +30,7 @@ show_name("Seth Cooper");
show_name("James Drews");
show_name("Michael Gary");
show_name("Gary Gibson");
show_name("Ian Hay");
show_name("Eric Heien");
show_name("Thomas Horsten");
show_name("Daniel Hsu");

View File

@ -63,6 +63,7 @@ How to configure and compile the BOINC software.
<li> <a href=build_server.php>Building server components</a>
<li> <a href=build_client.php>Building the core client</a>
<li> <a href=test.php>Test applications and scripts</a>
<li> <a href=http://noether.vassar.edu/~myers/help/boinc/boinc-on-redhat.html>Compiling BOINC on Red Hat Linux 7.x</a> (by Eric Myers)
</ul>
<font size=+1><b>
@ -84,6 +85,7 @@ The components of a BOINC project, and how to create them.
<li> <a href=code_signing.php>Code signing</a>
<li> <a href=tool_update_versions.php>Adding application versions</a>
<li> <a href=tool_upgrade.php>Upgrading a project's server software</a>
<li> <a href=web.php>Managing the project web site</a>
</ul>

View File

@ -84,7 +84,7 @@ list_item_func(
"Set the run mode (never/auto/always)."
);
list_item_func(
"bet_run_mode(int& mode)",
"get_run_mode(int& mode)",
"Get the run mode (never/auto/always)."
);
list_item_func(

View File

@ -128,7 +128,7 @@ platform creation and naming be coordinated by a single group
<h3>Tools</h3>
<p>
Platforms are maintained in the <b>platform</b> table in the BOINC DB,
and can be created using the <a href=tools_other.php>add</a> utility.
and can be created using the <a href=tool_xadd.php>xadd</a> utility.
";
page_tail();
?>

View File

@ -77,7 +77,7 @@ The core client will accept
a new key only if it's signed with the old key.
This mechanism is
designed to prevent attackers from breaking into a BOINC server and
distributing a false key pair.
distributing a false key.
<p>
<b>Denial of server attacks on data servers</b>
<p>

View File

@ -1,51 +1,101 @@
;; $Id$
Boinc Core Client - HTTPS implementation
========================================
These notes/hints are for ourselves (SSL SETI/BOINC group) but they might be
useful to others
BUILD PROCEDURES
COMPILING
=========
1 Build OpenSSL Static library which works with Boinc Client on Windows
32-bit:
-------
1-1) Install Perl (to compile OpenSSL)
Use 32-bit mysql CLIENT libraries (although server could be 64-bit) in
/usr/local/mysql_32bit:
Download package.
URL: http://aspn.activestate.com/ASPN/Downloads/ActivePerl/index/
./configure MYSQL_CONFIG=/usr/local/mysql_32bit/bin/mysql_config
install.bat will start installation.
64-bit:
-------
1-2) Download and install OpenSSL
On Koloth, use these flags to link with mysql-max-64bit:
-L /usr/local/mysql/lib -lmysqlclient -lsocket -lnsl -lm -m64 -Wl,-R,/usr/local/gcc/lib/sparcv9
URL: http://www.openssl.org/source/
2798433 Mar 17 13:13:26 2004 openssl-0.9.7d.tar.gz (PGP sign) [LATEST]
Therefore configure like this:
./configure CFLAGS=-m64 CXXFLAGS=-m64 LDFLAGS='-Wl,-R,/usr/local/gcc/lib/sparcv9'
1-3) Download Assembler (to compile sslelay32.lib, libeay32.lib)
The -m64 compile flag generates 64-bit code and is necessary because the mysql
libraries are 64-bit.
Download nasm.exe, and put it in some directory where %PATH% can find.
http://sourceforge.net/project/showfiles.php?group_id=6208
The -Wl,-R tells the linker to set the dynamic library search path (for C++)
to the 64-bit versions (default /usr/local/gcc/lib has 32-bit libraries with
the same name).
(Configure)
C:\openssl-0.9.7d>perl Configure VC-WIN32
(Build assembler code)
C:\openssl-0.9.7d>ms\do_nasm
* To compile debug library, need to add 'debug' option
in file 'do_nasm'.
perl util\mk1mf.pl debug nasm VC-WIN32 >ms\nt.mak
(Build main code)
C:\openssl-0.9.7d>nmake -f ms\nt.mak
* Before executing nt.mak, change make file 'nt.mak'
as follows:
For release build: /MD <20>¨ /MT, and
For debug build: /MDd <20>¨ /MTd
(Check library)
C:\openssl-0.9.7d>cd out32
C:\openssl-0.9.7d\out32>..\ms\test.bat
* If successfully build, you will see 'passed all tests'
messages
CRON SETUP
==========
2 Build BOINC Client
Need to set PATH to include python executable; need to set PYTHONPATH to
include PyXML module.
To discriminate the libraries, rename library files:
- libeay32_release.lib ssleay32_release.lib for release build,
- and libeay32_debug.lib ssleay32_debug.lib for debug build.
crontab:
2-1) Put all ssl libraries in the new directory 'SSL_Use'
(or other directories)
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /mydisks/a/users/boincadm/projects/cron/cron-astropulse
Directory: \boinc\SSL_Use\
cron-astropulse:
(Optional) To discriminate core client executables, create new
.Net project and directory for executables:
BoincClient CUI:
Project name - boinc_cli_SSL ,
executables -
\boinc-2.19\SSL_Use\Build\Debug\boinc_cli_SSL.exe
\boinc-2.19\SSL_Use\Build\Release\boinc_cli_SSL.exe
BoincClient GUI
Project name - boinc_gui_SSL ,
executables -
\boinc-2.19\SSL_Use\Build\Debug\boinc_gui_SSL.exe
\boinc-2.19\SSL_Use\Build\Release\boinc_gui_SSL.exe
PATH=/opt/misc/bin:/usr/bin:/bin
PYTHONPATH=/disks/koloth/a/users/boincadm/pkg/Pyxml/PyXML-0.8.2/build/lib.solaris-2.9-sun4u-2.2
export PATH PYTHONPATH
2-2) Change project configuration for boinc_gui_SSL and boinc_cli_SSL
/mydisks/a/users/boincadm/projects/AstroPulse_Beta/bin/start --cron
[boinc_xxx_SSL project]-[properties]-[Linker]-[Input]
-[Additional Dependencies]
For release build:
(add) libeay32_release.lib ssleay32_release.lib
For debug build:
(add) libeay32_debug.lib ssleay32_debug.lib
[boinc_xxx_SSL project]-[properties]-[C/C++]-[General]
-[Additional Include Directories]
For release build:
(add) ../openssl-0.9.7d/inc32/
For debug build:
(add) ../openssl-0.9.7d/inc32/
2-3) Build projects

View File

@ -36,17 +36,14 @@ to detect recoverable/nonrecoverable errors.
If a canonical result is found, check_set() must set the
validate_state field of each non-ERROR result to either VALID or INVALID.
<li>
The workunit is passed in for its min_quorum field.
<li>
If a recoverable error occurs while reading output files
(e.g. a directory wasn't visible due to NSF mount failure)
(e.g. a directory wasn't visible due to NFS mount failure)
then check_set() should return retry=true.
This tells the validator to arrange for this WU to be
examined again in a few hours.
<li>
check_set() should return nonzero if a major error
(e.g. database failure) occurs.
check_set() should return nonzero if a major error occurs.
This tells the validator to write an error message and exit.
</ul>
<p>
@ -70,8 +67,7 @@ it returns retry=true,
which causes the validator to arrange for the WU to be examined
again in a few hours.
<li>
check_pair() should return nonzero if a major error
(e.g. database failure) occurs.
check_pair() should return nonzero if a major error occurs.
This tells the validator to write an error message and exit.
</ul>

36
doc/web.php Normal file
View File

@ -0,0 +1,36 @@
<?php
require_once("docutil.php");
page_head("Managing the project web site");
echo "
<h2>Forums</h2>
<p>
The Special user feature allows certain users,
like project administrators, developers etc.,
to be shown with that title under their name in the forums.
It is important that people who are new to a project knows
who to pay attention to - and this is a way of giving them a hint.
To enable the feature simply run a query on the forum_preferences table.
You can currently use the following list of titles:
<pre>
Integer / Title
1 Project Administrator
2 Forum moderator
3 Developer
4 Volunteer developer
5 Project Scientist
</pre>
So if the project administrator has the user number 42
simply run this query to make him a special user
(provided that the row exists):
<pre>
UPDATE forum_preferences SET special_user=1 where userid=42
</pre>
<h2>Caching</h2>
<h2>News</h2>
";
page_tail();
?>

View File

@ -773,11 +773,13 @@ int send_work(
);
if (wreq.nresults == 0) {
reply.request_delay = 3600;
strcpy(reply.message, "No work available");
if (wreq.no_app_version) {
strcat(reply.message,
" (there was work for other platforms)"
);
reply.request_delay = 3600*24;
}
if (wreq.insufficient_disk) {
strcat(reply.message,
@ -803,6 +805,7 @@ int send_work(
strcat(reply.message,
" (your core client is out of date - please upgrade)"
);
reply.request_delay = 3600*24;
log_messages.printf(
SCHED_MSG_LOG::NORMAL,
"Not sending work because core client is outdated\n"
@ -818,7 +821,6 @@ int send_work(
}
strcpy(reply.message_priority, "high");
reply.request_delay = 3600;
log_messages.printf(
SCHED_MSG_LOG::NORMAL, "[HOST#%d] %s\n",