MDL-61578 backup: Prevent backup logging triggering fresh backups.
authorMichael Hawkins <michaelh@moodle.com>
Tue, 5 Jun 2018 08:07:45 +0000 (16:07 +0800)
committerMichael Hawkins <michaelh@moodle.com>
Tue, 10 Jul 2018 02:50:30 +0000 (10:50 +0800)
Thanks to Renaat Debleu for their contribution to this solution.

backup/util/helper/backup_cron_helper.class.php

index fc62cfc..e61b89a 100644 (file)
@@ -730,9 +730,16 @@ abstract class backup_cron_automated_helper {
     protected static function is_course_modified($courseid, $since) {
         $logmang = get_log_manager();
         $readers = $logmang->get_readers('core\log\sql_reader');
-        $where = "courseid = :courseid and timecreated > :since and crud <> 'r'";
         $params = array('courseid' => $courseid, 'since' => $since);
-        foreach ($readers as $reader) {
+
+        foreach ($readers as $readerpluginname => $reader) {
+            $where = "courseid = :courseid and timecreated > :since and crud <> 'r'";
+
+            // Prevent logs of prevous backups causing a false positive.
+            if ($readerpluginname != 'logstore_legacy') {
+                $where .= " and target <> 'course_backup'";
+            }
+
             if ($reader->get_events_select_count($where, $params)) {
                 return true;
             }