(bug 42600) (bug 24375) Fix doMaintenance.php exit procedures.
authorTyler Anthony Romeo <tylerromeo@gmail.com>
Mon, 11 Feb 2013 03:21:30 +0000 (22:21 -0500)
committerTyler Anthony Romeo <tylerromeo@gmail.com>
Wed, 20 Feb 2013 19:25:44 +0000 (14:25 -0500)
Fixed the post-execution calls in doMaintenance.php
to perform proper cleanup after the maintenance
script runs (modeled after MediaWiki::restInPeace).

Added a global call to wfWaitForSlaves() and then
wfDoUpdates() in doMaintenance.php to ensure that
deferred updates are always performed at the end
of maintenance scripts (and that they're performed
after the slaves catch up to avoid lag).

Also added calls to shutdown the DB factory so
that implicit transactions are committed and the
connections are closed.

Change-Id: I6f9580559d75f4761c5ddb504b2e3380e2e562a3

maintenance/doMaintenance.php

index f470aed..15b0016 100644 (file)
@@ -112,8 +112,16 @@ try {
        // Potentially debug globals
        $maintenance->globals();
 
+       // Perform deferred updates.
+       DeferredUpdates::doUpdates( 'commit' );
+
        // log profiling info
        wfLogProfilingData();
+
+       // Commit and close up!
+       $factory = wfGetLBFactory();
+       $factory->commitMasterChanges();
+       $factory->shutdown();
 } catch ( MWException $mwe ) {
        echo( $mwe->getText() );
        exit( 1 );