mirror of https://github.com/BOINC/boinc.git
sched/validator: DON'T set assimilate_state by the validator.
- The assimilator may have already started to assimilate this WU. The validator may take quite some time to chew through a chunk of workunits. Resetting the assimilate_state after that may be harmful and override the update made by the assimilator. Instead, let the transitioner decide what to do with this workunit. - Also too, avoid overriding a non-zero error mask
This commit is contained in:
parent
5d1d4c5b7e
commit
bed25a896e
|
@ -2032,8 +2032,9 @@ int DB_VALIDATOR_ITEM_SET::update_workunit(WORKUNIT& wu) {
|
||||||
char query[MAX_QUERY_LEN];
|
char query[MAX_QUERY_LEN];
|
||||||
|
|
||||||
sprintf(query,
|
sprintf(query,
|
||||||
"update workunit set need_validate=0, error_mask=%d, "
|
"update workunit set need_validate=0, "
|
||||||
"assimilate_state=%d, transition_time=%d, "
|
"error_mask=error_mask|%d, "
|
||||||
|
"transition_time=%d, "
|
||||||
"target_nresults=%d, "
|
"target_nresults=%d, "
|
||||||
"canonical_resultid=%lu, canonical_credit=%.15e "
|
"canonical_resultid=%lu, canonical_credit=%.15e "
|
||||||
"where id=%lu",
|
"where id=%lu",
|
||||||
|
|
|
@ -685,7 +685,11 @@ int handle_wu(
|
||||||
);
|
);
|
||||||
wu.canonical_resultid = canonicalid;
|
wu.canonical_resultid = canonicalid;
|
||||||
wu.canonical_credit = credit;
|
wu.canonical_credit = credit;
|
||||||
wu.assimilate_state = ASSIMILATE_READY;
|
|
||||||
|
// DON'T modify assimilate_state here, under bad conditions the
|
||||||
|
// assimilator may have already started to work on this WU.
|
||||||
|
// Instead, let the transitioner decide what to do with it.
|
||||||
|
transition_time = IMMEDIATE;
|
||||||
|
|
||||||
// don't need to send any more results
|
// don't need to send any more results
|
||||||
//
|
//
|
||||||
|
|
Loading…
Reference in New Issue