*** empty log message ***

svn path=/trunk/boinc/; revision=12264
This commit is contained in:
David Anderson 2007-03-22 02:38:45 +00:00
parent cafe3d9209
commit bcb25e86a1
4 changed files with 33 additions and 7 deletions

View File

@ -2765,5 +2765,21 @@ Jeff 21 Mar 2007
fcgi_stdio.h
David 21 Mar 2007
- update sample web site front page
html/user/
sample_index.php
David 21 Mar 2007
- core client: fixed bug where a <result_abort_if_unstarted>
in scheduler reply would crash client.
Also, change this tag to <result_abort_if_not_started>
Note: the syntax is
<result_abort_if_not_started>
<name>xxx</name>
</result_abort_if_not_started>
where xxx is the result name.
client/
cs_scheduler.C
scheduler_op.C,h

View File

@ -722,15 +722,25 @@ int CLIENT_STATE::handle_scheduler_reply(
} else {
rp->abort_inactive(ERR_ABORTED_BY_PROJECT);
}
} else {
msg_printf(project, MSG_INTERNAL_ERROR,
"Server requested abort of unknown task %s",
sr.result_abort[i].name
);
}
}
for (i=0; i<sr.result_abort_if_unstarted.size(); i++) {
RESULT* rp = lookup_result(project, sr.result_abort[i].name);
for (i=0; i<sr.result_abort_if_not_started.size(); i++) {
RESULT* rp = lookup_result(project, sr.result_abort_if_not_started[i].name);
if (rp) {
ACTIVE_TASK* atp = lookup_active_task_by_result(rp);
if (!atp) {
rp->abort_inactive(ERR_ABORTED_BY_PROJECT);
}
} else {
msg_printf(project, MSG_INTERNAL_ERROR,
"Server requested conditional abort of unknown task %s",
sr.result_abort_if_not_started[i].name
);
}
}

View File

@ -794,16 +794,16 @@ int SCHEDULER_REPLY::parse(FILE* in, PROJECT* project) {
} else {
result_abort.push_back(result);
}
} else if (match_tag(buf, "<result_abort_if_unstarted>")) {
} else if (match_tag(buf, "<result_abort_if_not_started>")) {
RESULT result;
retval = result.parse_name(in, "</result_abort_if_unstarted>");
retval = result.parse_name(in, "</result_abort_if_not_started>");
if (retval) {
msg_printf(project, MSG_INTERNAL_ERROR,
"Can't parse result abort-if-unstarted in scheduler reply: %s",
"Can't parse result abort-if-not-started in scheduler reply: %s",
boincerror(retval)
);
} else {
result_abort_if_unstarted.push_back(result);
result_abort_if_not_started.push_back(result);
}
} else if (parse_str(buf, "<delete_file_info>", delete_file_name)) {
file_deletes.push_back(delete_file_name);

View File

@ -114,7 +114,7 @@ struct SCHEDULER_REPLY {
std::vector<RESULT> results;
std::vector<RESULT> result_acks;
std::vector<RESULT> result_abort;
std::vector<RESULT> result_abort_if_unstarted;
std::vector<RESULT> result_abort_if_not_started;
char* code_sign_key;
char* code_sign_key_signature;
bool message_ack;