MDL-37943 upgrade: logic error in upgrade_plugins_blocks.
authorTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 8 Feb 2013 12:40:49 +0000 (12:40 +0000)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Fri, 8 Feb 2013 12:40:49 +0000 (12:40 +0000)
Derek Woolhead tracked down the problem and what needed to be fixed. I
just made the patch.

The problem was that if $plugin->cron had changed in version.php, then
the version number in the database could end up wrong after the upgrade,
and so the upgrade would immediately run a second time.

lib/upgradelib.php

index 532db65..111026c 100644 (file)
@@ -825,8 +825,7 @@ function upgrade_plugins_blocks($startcallback, $endcallback, $verbose) {
 
             if ($currblock->cron != $block->cron) {
                 // update cron flag if needed
-                $currblock->cron = $block->cron;
-                $DB->update_record('block', $currblock);
+                $DB->set_field('block', 'cron', $block->cron, array('id' => $currblock->id));
             }
 
             // Upgrade various components