mirror of https://github.com/BOINC/boinc.git
scheduler: fixed to checkins on 28 July
(1) Put core client version number into wreq BEFORE searching for an app version. Problem is that reply.wreq.core_client_version was only being set in send_work(), which was too late for the resend_lost_work() part of the code. You might want to move all the initialization of reply.wreq out of send_work(). The core client version is needed to see if the app is compatible with it when calling get_app_version(). (2) In retransmitting lost work, do NOT set the deadline to new values. Else the result will never time out! But DO reset the sent_time, to indicate that result was resent. transitioner: In the transitioner, make the next WU transition time be the min of deadlines of the in progress results, NOT the min of the sent_time+delay bound. Unless a project wants to do dynamic adjustment of delay bounds for in progress results this should be OK. CPDN people: I don't think this does any harm for trickles but you might want to give it a quick look to be 100% sure. svn path=/trunk/boinc/; revision=6870
This commit is contained in:
parent
cc29afb18e
commit
a009ee9af7
|
@ -9666,3 +9666,26 @@ Rom 29 July 2005
|
|||
MainFrame.cpp
|
||||
WizAttachProject.cpp, .h
|
||||
stdwx.h
|
||||
|
||||
Bruce 29 July 2005
|
||||
- scheduler: fixed to checkins on 28 July
|
||||
(1) Put core client version number into wreq BEFORE searching for
|
||||
an app version. Problem is that reply.wreq.core_client_version was only being set in
|
||||
send_work(), which was too late for the resend_lost_work() part
|
||||
of the code. You might want to move all the initialization of reply.wreq
|
||||
out of send_work(). The core client version is needed to see if the
|
||||
app is compatible with it when calling get_app_version().
|
||||
(2) In retransmitting lost work, do NOT set the deadline to new
|
||||
values. Else the result will never time out! But DO reset
|
||||
the sent_time, to indicate that result was resent.
|
||||
- transitioner:
|
||||
In the transitioner, make the next WU transition time be the min
|
||||
of deadlines of the in progress results, NOT the min of the
|
||||
sent_time+delay bound. Unless a project wants to do dynamic
|
||||
adjustment of delay bounds for in progress results this should be OK.
|
||||
CPDN people: I don't think this does any harm for trickles but
|
||||
you might want to give it a quick look to be 100% sure.
|
||||
|
||||
sched/
|
||||
sched_send.C
|
||||
transitioner.C
|
||||
|
|
|
@ -652,8 +652,8 @@ int add_result_to_reply(
|
|||
//
|
||||
result.hostid = reply.host.id;
|
||||
result.userid = reply.user.id;
|
||||
result.sent_time = time(0);
|
||||
if (result.server_state != RESULT_SERVER_STATE_IN_PROGRESS) {
|
||||
result.sent_time = time(0);
|
||||
result.report_deadline = result.sent_time + wu.delay_bound;
|
||||
result.server_state = RESULT_SERVER_STATE_IN_PROGRESS;
|
||||
} else {
|
||||
|
|
|
@ -479,7 +479,14 @@ int handle_wu(
|
|||
TRANSITIONER_ITEM& res_item = items[i];
|
||||
if (res_item.res_id) {
|
||||
if (res_item.res_server_state == RESULT_SERVER_STATE_IN_PROGRESS) {
|
||||
x = res_item.res_sent_time + wu_item.delay_bound;
|
||||
// In cases where a result has been RESENT to a host, the
|
||||
// report deadline time may be EARLIER than
|
||||
// sent_time + delay_bound
|
||||
// because the sent_time has been updated with the later
|
||||
// "resend" time.
|
||||
//
|
||||
// x = res_item.res_sent_time + wu_item.delay_bound;
|
||||
x = res_item.res_report_deadline;
|
||||
if (x < wu_item.transition_time) {
|
||||
wu_item.transition_time = x;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue