guard against any remaining infinite recursion bugs; throw error if no candidate cn be found in next hundred years
Note that the exception thrown is not visible in the webapp currently because it crashes one of Cronner's 2 worker threads, which is never checked.
This commit is contained in:
parent
9e16171c7f
commit
e26dead493
2 changed files with 10 additions and 4 deletions
|
@ -86,7 +86,7 @@ nextTime schedule lasttime = do
|
|||
{- Calculate the next time that fits a Schedule, based on the
|
||||
- last time it occurred, and the current time. -}
|
||||
calcNextTime :: Schedule -> Maybe LocalTime -> LocalTime -> Maybe NextTime
|
||||
calcNextTime (Schedule recurrance scheduledtime) lasttime currenttime
|
||||
calcNextTime schedule@(Schedule recurrance scheduledtime) lasttime currenttime
|
||||
| scheduledtime == AnyTime = do
|
||||
next <- findfromtoday True
|
||||
return $ case next of
|
||||
|
@ -108,7 +108,13 @@ calcNextTime (Schedule recurrance scheduledtime) lasttime currenttime
|
|||
window startd endd = NextTimeWindow
|
||||
(LocalTime startd nexttime)
|
||||
(LocalTime endd (TimeOfDay 23 59 0))
|
||||
findfrom r afterday candidate = case r of
|
||||
findfrom r afterday candidate
|
||||
| ynum candidate > (ynum (localDay currenttime)) + 100 =
|
||||
-- avoid possible infinite recusion
|
||||
error $ "bug: calcNextTime did not find a time within 100 years to run " ++
|
||||
show (schedule, lasttime, currenttime)
|
||||
| otherwise = findfromChecked r afterday candidate
|
||||
findfromChecked r afterday candidate = case r of
|
||||
Daily
|
||||
| afterday -> Just $ exactly $ addDays 1 candidate
|
||||
| otherwise -> Just $ exactly candidate
|
||||
|
|
4
debian/changelog
vendored
4
debian/changelog
vendored
|
@ -1,8 +1,8 @@
|
|||
git-annex (5.20140412) UNRELEASED; urgency=high
|
||||
git-annex (5.20140412) unstable; urgency=high
|
||||
|
||||
* Last release didn't quite fix the high cpu issue in all cases, this should.
|
||||
|
||||
-- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 17:13:07 -0400
|
||||
-- Joey Hess <joeyh@debian.org> Fri, 11 Apr 2014 17:14:38 -0400
|
||||
|
||||
git-annex (5.20140411) unstable; urgency=high
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue