diff --git a/checkin_notes b/checkin_notes index c612a212ac..c2d501fd30 100644 --- a/checkin_notes +++ b/checkin_notes @@ -648,3 +648,14 @@ David 22 Jan 2010 result.inc sched/ 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 diff --git a/sched/transitioner.cpp b/sched/transitioner.cpp index d652b0f5bb..526a63238b 100644 --- a/sched/transitioner.cpp +++ b/sched/transitioner.cpp @@ -540,12 +540,12 @@ int handle_wu( // 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; } else { - // If there is no canonical result, - // make sure that the transitioner will 'see' this WU again. - // In principle this is NOT needed, but it is one way to make + // If there is no canonical result and no WU-level error, + // make sure that the transitioner will process this WU again. + // In principle this is not needed, but it makes // the BOINC back-end more robust. // const int ten_days = 10*86400;