MDL-32985 cron: Fixing related problem with setting of lastnotifyfailure
authorEric Merrill <merrill@oakland.edu>
Wed, 6 Jun 2012 16:04:03 +0000 (12:04 -0400)
committerEric Merrill <merrill@oakland.edu>
Wed, 6 Jun 2012 16:04:03 +0000 (12:04 -0400)
Because of a flaw in the logic, lastnotifyfailure was not set unless
there was a failure. This means that after 1 hour of no failures, the
function would execute every cron cycle, which has a pretty high cost
on large sites.

lib/cronlib.php

index b79057d..b034760 100644 (file)
@@ -711,11 +711,11 @@ function notify_login_failures() {
             //emailing the admins directly rather than putting these through the messaging system
             email_to_user($admin,get_admin(), $subject, $body);
         }
-
-        // Update lastnotifyfailure with current time
-        set_config('lastnotifyfailure', time());
     }
 
+    // Update lastnotifyfailure with current time
+    set_config('lastnotifyfailure', time());
+
     // Finally, delete all the temp records we have created in cache_flags
     $DB->delete_records_select('cache_flags', "flagtype IN ('login_failure_by_ip', 'login_failure_by_info')");