summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2014-04-11 14:34:09 -0400
committerGravatar Joey Hess <joey@kitenet.net>2014-04-11 14:34:09 -0400
commit1da5429a3356a93b2628232ebf442a735b20f2af (patch)
tree283d9479118c54c7aecfffa3d0206f82ebd6ecab
parent803d6ad2c41db8a3852702b94d2505ab30eb5626 (diff)
assistant: Fix high CPU usage triggered when a monthly fsck is scheduled, and the last time the job ran was a day of the month > 12. This caused a runaway loop. Thanks to Anarcat for his assistance, and to Maximiliano Curia for identifying the cause of this bug.
-rw-r--r--Utility/Scheduled.hs2
-rw-r--r--debian/changelog4
-rw-r--r--doc/bugs/assistant_eats_all_CPU.mdwn7
3 files changed, 12 insertions, 1 deletions
diff --git a/Utility/Scheduled.hs b/Utility/Scheduled.hs
index 11e3b569b..e4b03aac4 100644
--- a/Utility/Scheduled.hs
+++ b/Utility/Scheduled.hs
@@ -121,7 +121,7 @@ calcNextTime (Schedule recurrance scheduledtime) lasttime currenttime
| otherwise -> skip 1
Monthly Nothing
| afterday -> skip 1
- | maybe True (\old -> mnum day > mday old && mday day >= (mday old `mod` minmday)) lastday ->
+ | maybe True (\old -> mnum day > mnum old && mday day >= (mday old `mod` minmday)) lastday ->
-- Window only covers current month,
-- in case there is a Divisible requirement.
Just $ window day (endOfMonth day)
diff --git a/debian/changelog b/debian/changelog
index 00ac22c20..55c1ba396 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,10 @@ git-annex (5.20140406) UNRELEASED; urgency=medium
OSX system has wget installed, which will then be used.
* Fix rsync progress parsing in locales that use comma in number display.
Closes: #744148
+ * assistant: Fix high CPU usage triggered when a monthly fsck is scheduled,
+ and the last time the job ran was a day of the month > 12. This caused a
+ runaway loop. Thanks to Anarcat for his assistance, and to Maximiliano
+ Curia for identifying the cause of this bug.
-- Joey Hess <joeyh@debian.org> Mon, 07 Apr 2014 16:22:02 -0400
diff --git a/doc/bugs/assistant_eats_all_CPU.mdwn b/doc/bugs/assistant_eats_all_CPU.mdwn
index 4939bf456..719fca425 100644
--- a/doc/bugs/assistant_eats_all_CPU.mdwn
+++ b/doc/bugs/assistant_eats_all_CPU.mdwn
@@ -520,3 +520,10 @@ $ ps -O start xf | grep git-annex
13761 23:56:38 Z ? 00:00:00 \_ [git] <defunct>
6252 12:56:59 S ? 00:01:09 /usr/bin/emacs23
"""]]
+
+#### This bug is fixed
+
+> [[fixed|done]]. This was a Cronner bug, triggered when you had a
+> scheduled fsck job that runs monthly at any time, and the last time it ran was on a day of a
+> month > 12. Workaround: Disable scheduled fsck jobs, or change them to
+> run on a specific day of the month. Or upgrade. --[[Joey]]