- transitioner: fix bug where WUs with error_mask <> 0 keep

transitioning every 10 days, hence never become eligible for purging.
    The problem: the transitioner has a "safety net" where,
    if the WU doesn't have a canonical result,
    it arranges for another transition in 10 days.
    Skip this if error_mask<>0.

svn path=/trunk/boinc/; revision=20265
This commit is contained in:
David Anderson 2010-01-25 23:35:16 +00:00
parent 90647084f8
commit 67e438bc6b
2 changed files with 15 additions and 4 deletions

View File

@ -648,3 +648,14 @@ David 22 Jan 2010
result.inc result.inc
sched/ sched/
transitioner.cpp transitioner.cpp
David 25 Jan 2010
- transitioner: fix bug where WUs with error_mask <> 0 keep
transitioning every 10 days, hence never become eligible for purging.
The problem: the transitioner has a "safety net" where,
if the WU doesn't have a canonical result,
it arranges for another transition in 10 days.
Skip this if error_mask<>0.
sched/
transitioner.cpp

View File

@ -540,12 +540,12 @@ int handle_wu(
// compute next transition time = minimum timeout of in-progress results // compute next transition time = minimum timeout of in-progress results
// //
if (wu_item.canonical_resultid) { if (wu_item.canonical_resultid || wu_item.error_mask) {
wu_item.transition_time = INT_MAX; wu_item.transition_time = INT_MAX;
} else { } else {
// If there is no canonical result, // If there is no canonical result and no WU-level error,
// make sure that the transitioner will 'see' this WU again. // make sure that the transitioner will process this WU again.
// In principle this is NOT needed, but it is one way to make // In principle this is not needed, but it makes
// the BOINC back-end more robust. // the BOINC back-end more robust.
// //
const int ten_days = 10*86400; const int ten_days = 10*86400;