mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=10226
This commit is contained in:
parent
cf4c89d757
commit
210e22e537
|
@ -5240,3 +5240,20 @@ Rom 29 May 2006
|
|||
|
||||
lib/
|
||||
diagnostics_win.C
|
||||
|
||||
David 31 May 2006
|
||||
- database code: the following functions
|
||||
DB_VALIDATOR_ITEM_SET::enumerate()
|
||||
DB_WORK_ITEM::enumerate()
|
||||
were using a left join on (workunit, result) or (result, workunit),
|
||||
then parsing the result in a way that would crash
|
||||
if only one item was present
|
||||
(e.g. if there's a WU without corresponding result, or vice-versa).
|
||||
|
||||
Solution: replaced "left join" with a "natural join", i.e.
|
||||
select ... from workunit, result where ...
|
||||
|
||||
db/
|
||||
boinc_db.C
|
||||
sched/
|
||||
sched_config.C
|
||||
|
|
|
@ -119,11 +119,11 @@ void DB_PLATFORM::db_print(char* buf){
|
|||
void DB_PLATFORM::db_parse(MYSQL_ROW &r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id=atol(r[i++]);
|
||||
create_time=atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
strcpy2(name, r[i++]);
|
||||
strcpy2(user_friendly_name, r[i++]);
|
||||
deprecated=atol(r[i++]);
|
||||
deprecated = atoi(r[i++]);
|
||||
}
|
||||
|
||||
void DB_APP::db_print(char* buf){
|
||||
|
@ -138,7 +138,7 @@ void DB_APP::db_print(char* buf){
|
|||
void DB_APP::db_parse(MYSQL_ROW &r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id=atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
strcpy2(name, r[i++]);
|
||||
min_version = atoi(r[i++]);
|
||||
|
@ -161,7 +161,7 @@ void DB_APP_VERSION::db_print(char* buf){
|
|||
void DB_APP_VERSION::db_parse(MYSQL_ROW &r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id=atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
appid = atoi(r[i++]);
|
||||
version_num = atoi(r[i++]);
|
||||
|
@ -382,7 +382,7 @@ void DB_HOST::db_print(char* buf){
|
|||
void DB_HOST::db_parse(MYSQL_ROW &r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id=atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
userid = atoi(r[i++]);
|
||||
rpc_seqno = atoi(r[i++]);
|
||||
|
@ -646,7 +646,7 @@ void DB_WORKUNIT::db_print(char* buf){
|
|||
void DB_WORKUNIT::db_parse(MYSQL_ROW &r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id=atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
appid = atoi(r[i++]);
|
||||
strcpy2(name, r[i++]);
|
||||
|
@ -758,7 +758,7 @@ int DB_RESULT::mark_as_sent(int old_server_state) {
|
|||
void DB_RESULT::db_parse(MYSQL_ROW &r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id=atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
workunitid = atoi(r[i++]);
|
||||
server_state = atoi(r[i++]);
|
||||
|
@ -807,9 +807,9 @@ void DB_MSG_FROM_HOST::db_print(char* buf) {
|
|||
void DB_MSG_FROM_HOST::db_parse(MYSQL_ROW& r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id = atol(r[i++]);
|
||||
create_time = atol(r[i++]);
|
||||
hostid = atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
hostid = atoi(r[i++]);
|
||||
strcpy2(variety, r[i++]);
|
||||
handled = atoi(r[i++]);
|
||||
strcpy2(xml, r[i++]);
|
||||
|
@ -831,11 +831,11 @@ void DB_MSG_TO_HOST::db_print(char* buf) {
|
|||
void DB_MSG_TO_HOST::db_parse(MYSQL_ROW& r) {
|
||||
int i=0;
|
||||
clear();
|
||||
id = atol(r[i++]);
|
||||
create_time = atol(r[i++]);
|
||||
hostid = atol(r[i++]);
|
||||
id = atoi(r[i++]);
|
||||
create_time = atoi(r[i++]);
|
||||
hostid = atoi(r[i++]);
|
||||
strcpy2(variety, r[i++]);
|
||||
handled = atol(r[i++]);
|
||||
handled = atoi(r[i++]);
|
||||
strcpy2(xml, r[i++]);
|
||||
}
|
||||
|
||||
|
@ -1128,10 +1128,8 @@ int DB_VALIDATOR_ITEM_SET::enumerate(
|
|||
" res.sent_time, "
|
||||
" res.received_time "
|
||||
"FROM "
|
||||
" workunit AS wu "
|
||||
" LEFT JOIN result AS res ON wu.id = res.workunitid "
|
||||
"WHERE "
|
||||
" wu.appid = %d and wu.need_validate > 0 %s "
|
||||
" workunit AS wu, result AS res where wu.id = res.workunitid "
|
||||
" and wu.appid = %d and wu.need_validate > 0 %s "
|
||||
"LIMIT "
|
||||
" %d ",
|
||||
priority, appid, mod_clause, nresult_limit
|
||||
|
@ -1227,7 +1225,7 @@ void WORK_ITEM::parse(MYSQL_ROW& r) {
|
|||
int i=0;
|
||||
memset(this, 0, sizeof(WORK_ITEM));
|
||||
res_id = atoi(r[i++]);
|
||||
wu.id=atol(r[i++]);
|
||||
wu.id = atoi(r[i++]);
|
||||
wu.create_time = atoi(r[i++]);
|
||||
wu.appid = atoi(r[i++]);
|
||||
strcpy2(wu.name, r[i++]);
|
||||
|
@ -1263,9 +1261,9 @@ int DB_WORK_ITEM::enumerate(
|
|||
MYSQL_ROW row;
|
||||
if (!cursor.active) {
|
||||
sprintf(query,
|
||||
"select high_priority result.id, workunit.* from result left join workunit "
|
||||
"on workunit.id = result.workunitid "
|
||||
"where result.server_state=%d "
|
||||
"select high_priority result.id, workunit.* from result, workunit "
|
||||
"where workunit.id = result.workunitid "
|
||||
"and result.server_state=%d "
|
||||
" %s "
|
||||
" %s "
|
||||
"limit %d",
|
||||
|
@ -1280,7 +1278,9 @@ int DB_WORK_ITEM::enumerate(
|
|||
if (!cursor.rp) return mysql_errno(db->mysql);
|
||||
cursor.active = true;
|
||||
}
|
||||
again:
|
||||
row = mysql_fetch_row(cursor.rp);
|
||||
|
||||
if (!row) {
|
||||
mysql_free_result(cursor.rp);
|
||||
cursor.active = false;
|
||||
|
|
|
@ -2,9 +2,32 @@
|
|||
require_once("docutil.php");
|
||||
page_head("Application debugging on Windows");
|
||||
echo "
|
||||
<h3>Anatomy of a Windows stack trace</h3>
|
||||
<h3>Contents</h3>
|
||||
<ul>
|
||||
<li><a href=\"#Anatomy of a Windows stack trace\">Anatomy of a Windows stack trace</a>
|
||||
<ul>
|
||||
<li><a href=\"#Introduction\">Introduction</a>
|
||||
<li><a href=\"#Debugger version\">Debugger version</a>
|
||||
<li><a href=\"#Module List\">Module List</a>
|
||||
<li><a href=\"#Process Information\">Process Information</a>
|
||||
<li><a href=\"#Thread Information\">Thread Information</a>
|
||||
<ul>
|
||||
<li><a href=\"#General Information\">General Information</a>
|
||||
<li><a href=\"#Unhandled Exception Record\">Unhandled Exception Record</a>
|
||||
<li><a href=\"#Registers\">Registers</a>
|
||||
<li><a href=\"#Callstack\">Callstack</a>
|
||||
</ul>
|
||||
<li><a href=\"#Debug Message Dump\">Debug Message Dump</a>
|
||||
<li><a href=\"#Foreground Window Data\">Foreground Window Data</a>
|
||||
</ul>
|
||||
<li><a href=\"Common Issues\">Common Issues</a>
|
||||
</ul>
|
||||
|
||||
<h4>Debugger version</h4>
|
||||
<h3><a name=\"Anatomy of a Windows stack trace\">Anatomy of a Windows stack trace</a></h3>
|
||||
|
||||
<h4><a name=\"Introduction\">Introduction</a></h4>
|
||||
|
||||
<h4><a name=\"Debugger version\">Debugger version</a></h4>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
|
@ -32,7 +55,11 @@ find the symbol files related to the modules loaded in memory. Entries prefixed
|
|||
'srv*' are used to denote a web based symbol store. DbgHelp will use them if
|
||||
symsrv can be loaded at the time of the crash.
|
||||
<p>
|
||||
<h4>Module List</h4>
|
||||
If you see a load library failure for either dbghelp.dll or symsrv.dll then there
|
||||
is a pretty good chance that most of the data in the dump will be useless.
|
||||
<p>
|
||||
|
||||
<h4><a name=\"Module List\">Module List</a></h4>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
|
@ -56,68 +83,137 @@ was loaded, the second hexdecimal is the size of the module.
|
|||
If a version record was found inside the module, it'll be dumped out as part of the
|
||||
module list dump.
|
||||
<p>
|
||||
<h4>Exception Record</h4>
|
||||
|
||||
<h4><a name=\"Process Information\">Process Information</a></h4>
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
*** Dump of the Process Statistics: ***
|
||||
|
||||
- I/O Operations Counters -
|
||||
Read: 24, Write: 0, Other 206
|
||||
|
||||
- I/O Transfers Counters -
|
||||
Read: 0, Write: 358, Other 0
|
||||
|
||||
- Paged Pool Usage -
|
||||
QuotaPagedPoolUsage: 29116, QuotaPeakPagedPoolUsage: 29228
|
||||
QuotaNonPagedPoolUsage: 6624, QuotaPeakNonPagedPoolUsage: 6640
|
||||
|
||||
- Virtual Memory Usage -
|
||||
VirtualSize: 64102400, PeakVirtualSize: 71045120
|
||||
|
||||
- Pagefile Usage -
|
||||
PagefileUsage: 26218496, PeakPagefileUsage: 33697792
|
||||
|
||||
- Working Set Size -
|
||||
WorkingSetSize: 19210240, PeakWorkingSetSize: 26361856, PageFaultCount: 6729
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h4><a name=\"Thread Information\">Thread Information</a></h4>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
*** UNHANDLED EXCEPTION ****
|
||||
*** Dump of the Worker thread (a4): ***
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h5><a name=\"General Information\">General Information</a></h5>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
- Information -
|
||||
Status: Waiting, Wait Reason: UserRequest, Kernel Time: 0.000000, User Time: 0.000000, Wait Time: 38241696.000000
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h5><a name=\"Unhandled Exception Record\">Unhandled Exception Record</a></h5>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
- Unhandled Exception Record -
|
||||
Reason: Breakpoint Encountered (0x80000003) at address 0x7C822583
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p>
|
||||
|
||||
|
||||
<h4>Stack traces</h4>
|
||||
<h5><a name=\"Registers\">Registers</a></h5>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
*** Dump of the Worker(offending) thread: ***
|
||||
eax=00000000 ebx=00000000 ecx=77e4245b edx=7c82ed54 esi=77e424a8 edi=00454f20
|
||||
eip=7c822583 esp=00a1fd64 ebp=00a1ffb4
|
||||
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
|
||||
|
||||
ChildEBP RetAddr Args to Child
|
||||
00a1fd60 0040203b 00000000 00000000 00000000 00000001 ntdll!_DbgBreakPoint@0+0x0 FPO: [0,0,0]
|
||||
00a1ffb4 004239ce 77e66063 00000000 00000000 00000000 uppercase_5.10_windows_intelx86!worker+0x0 (c:\boincsrc\main\boinc_samples\uppercase\upper_case.c:174)
|
||||
00a1ffb8 77e66063 00000000 00000000 00000000 00000000 uppercase_5.10_windows_intelx86!foobar+0x0 (c:\boincsrc\main\boinc\api\graphics_impl.c:75) FPO: [1,0,0]
|
||||
00a1ffec 00000000 004239c0 00000000 00000000 00000000 kernel32!_BaseThreadStart@8+0x0 (c:\boincsrc\main\boinc\api\graphics_impl.c:75)
|
||||
|
||||
*** Dump of the Timer thread: ***
|
||||
eax=0002625a ebx=00000000 ecx=00000000 edx=00b1feb0 esi=00000001 edi=00000000
|
||||
eip=7c82ed54 esp=00b1ff0c ebp=00b1ffb8
|
||||
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
|
||||
|
||||
ChildEBP RetAddr Args to Child
|
||||
00b1ff08 7c822114 76aba0d3 00000002 00b1ff70 00000001 ntdll!_KiFastSystemCallRet@0+0x0 FPO: [0,0,0]
|
||||
00b1ff0c 76aba0d3 00000002 00b1ff70 00000001 00000001 ntdll!_NtWaitForMultipleObjects@20+0x0 FPO: [5,0,0]
|
||||
00b1ffb8 77e66063 00000000 00000000 00000000 00000000 WINMM!_timeThread@4+0x0
|
||||
00b1ffec 00000000 76aba099 00000000 00000000 49474542 kernel32!_BaseThreadStart@8+0x0
|
||||
|
||||
*** Dump of the Graphics thread: ***
|
||||
eax=00000000 ebx=7738e3f7 ecx=00000000 edx=00000000 esi=0012fc00 edi=7739ca9d
|
||||
eip=7c82ed54 esp=0012fbb4 ebp=0012fbd8
|
||||
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246
|
||||
|
||||
ChildEBP RetAddr Args to Child
|
||||
0012fbb0 7739c78d 77392f3a 0012fc00 00000000 00000000 ntdll!_KiFastSystemCallRet@0+0x0 FPO: [0,0,0]
|
||||
0012fbd8 00424c3f 0012fc00 00000000 00000000 00000000 USER32!_NtUserGetMessage@16+0x0
|
||||
0012fcb0 00423ca3 00000001 00000001 00000001 00000001 uppercase_5.10_windows_intelx86!win_graphics_event_loop+0x14 (c:\boincsrc\main\boinc\api\windows_opengl.c:571) FPO: [0,46,0]
|
||||
0012fcd0 004220eb 00401078 0045c3b0 0040233c 00401078 uppercase_5.10_windows_intelx86!boinc_init_graphics_impl+0x30 (c:\boincsrc\main\boinc\api\graphics_impl.c:84) FPO: [2,7,0]
|
||||
0012fcdc 0040233c 00401078 00454f00 004483a4 00000002 uppercase_5.10_windows_intelx86!boinc_init_graphics+0x4b (c:\boincsrc\main\boinc\api\graphics_api.c:45) FPO: [1,0,0]
|
||||
0012fcf4 004023b1 00000002 0012fd0c 00142550 0012fd0c uppercase_5.10_windows_intelx86!main+0xa (c:\boincsrc\main\boinc_samples\uppercase\upper_case.c:233) FPO: [2,0,0]
|
||||
0012fe98 004035b4 00400000 00000000 001425a7 00000001 uppercase_5.10_windows_intelx86!WinMain+0x0 (c:\boincsrc\main\boinc_samples\uppercase\upper_case.c:110) FPO: [4,100,0]
|
||||
0012ffc0 77e523cd 00000000 00000000 7ffd9000 8707adb0 uppercase_5.10_windows_intelx86!WinMainCRTStartup+0x1d (f:\vs70builds\3077\vc\crtbld\crt\src\crt0.c:251)
|
||||
0012fff0 00000000 00403430 00000000 78746341 00000020 kernel32!_BaseProcessStart@4+0x0 (f:\vs70builds\3077\vc\crtbld\crt\src\crt0.c:251)
|
||||
- Registers -
|
||||
eax=00000000 ebx=00000000 ecx=77e4245b edx=7c82ed54 esi=77e88bfe edi=00459f40
|
||||
eip=7c822583 esp=00aafd64 ebp=00aaffb4
|
||||
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h5><a name=\"Callstack\">Callstack</a></h5>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
- Callstack -
|
||||
ChildEBP RetAddr Args to Child
|
||||
00aafd60 00402221 00000000 00000000 00000000 00000001 ntdll!_DbgBreakPoint@0+0x0 FPO: [0,0,0]
|
||||
00aaffb4 0042684e 77e66063 00000000 00000000 00000000 uppercase_5.10_windows_intelx86!worker+0x0 (c:\boincsrc\main\boinc_samples\uppercase\upper_case.c:181)
|
||||
00aaffb8 77e66063 00000000 00000000 00000000 00000000 uppercase_5.10_windows_intelx86!foobar+0x0 (c:\boincsrc\main\boinc\api\graphics_impl.c:75) FPO: [1,0,0]
|
||||
00aaffec 00000000 00426840 00000000 00000000 00000000 kernel32!_BaseThreadStart@8+0x0 (c:\boincsrc\main\boinc\api\graphics_impl.c:75)
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h4><a name=\"Debug Message Dump\">Debug Message Dump</a></h4>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
*** Debug Message Dump ****
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h4><a name=\"Foreground Window Data\">Foreground Window Data</a></h4>
|
||||
|
||||
<table width=100%>
|
||||
<tr>
|
||||
<td bgcolor=ddddff width=100%>
|
||||
<pre>
|
||||
*** Foreground Window Data ***
|
||||
Window Name :
|
||||
Window Class :
|
||||
Window Process ID: 16f8
|
||||
Window Thread ID : ae8
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h3><a name=\"Common Issues\">Common Issues</a></h3>
|
||||
|
||||
";
|
||||
|
||||
page_tail();
|
||||
|
|
|
@ -1,6 +1,19 @@
|
|||
<?
|
||||
|
||||
$project_news = array(
|
||||
array("May 31, 2006",
|
||||
"Recent newspaper articles on BOINC and Rosetta@home:
|
||||
<a href=http://seattletimes.nwsource.com/html/localnews/2003027071_computersider30m.html>Worldwide, 690,000 help computer effort</a> and
|
||||
<a href=http://seattlepi.nwsource.com/local/6420AP_WA_Research_at_Home.html>Medical researcher taps the power of home computing</a>."
|
||||
),
|
||||
array("May 30, 2006",
|
||||
"The <a href=http://bam.boincstats.com>BOINCStats Account Manager</a>
|
||||
(BAM!) is now available for use.
|
||||
BAM! provides 'one-stop shopping' for finding
|
||||
and attaching to BOINC project;
|
||||
see the news item of May 11.
|
||||
Thanks to Willy de Zutter for developing BAM!."
|
||||
),
|
||||
array("May 25, 2006",
|
||||
"BOINC has added preliminary support for 'low-latency' computing;
|
||||
e.g. delay bounds of minutes rather than days.
|
||||
|
|
|
@ -112,6 +112,7 @@ int SCHED_CONFIG::parse(FILE* f) {
|
|||
else if (!strcmp(tag, "output_level")) continue;
|
||||
else if (!strcmp(tag, "profile_screening")) continue;
|
||||
else if (!strcmp(tag, "min_passwd_length")) continue;
|
||||
else if (!strcmp(tag, "disable_account_creation")) continue;
|
||||
else fprintf(stderr, "unknown tag: %s\n", tag);
|
||||
}
|
||||
return ERR_XML_PARSE;
|
||||
|
|
Loading…
Reference in New Issue