Merge "Make HTMLFileCache also work when gzip is not enabled server-side."
[lhc/web/wiklou.git] / maintenance / fixSlaveDesync.php
index 0d91f54..7731d3e 100644 (file)
@@ -24,9 +24,12 @@ class FixSlaveDesync extends Maintenance {
        public function __construct() {
                parent::__construct();
                $this->mDescription = "";
-               
        }
-       
+
+       public function getDbType() {
+               return Maintenance::DB_ADMIN;
+       }
+
        public function execute() {
                $this->slaveIndexes = array();
                for ( $i = 1; $i < wfGetLB()->getServerCount(); $i++ ) {
@@ -38,8 +41,6 @@ class FixSlaveDesync extends Maintenance {
                if ( $this->hasArg() ) {
                        $this->desyncFixPage( $this->getArg() );
                } else {
-                       $dbw = wfGetDB( DB_MASTER );
-                       $maxPage = $dbw->selectField( 'page', 'MAX(page_id)', false, __METHOD__ );
                        $corrupt = $this->findPageLatestCorruption();
                        foreach ( $corrupt as $id => $dummy ) {
                                $this->desyncFixPage( $id );
@@ -87,7 +88,7 @@ class FixSlaveDesync extends Maintenance {
        private function desyncFixPage( $pageID ) {
                # Check for a corrupted page_latest
                $dbw = wfGetDB( DB_MASTER );
-               $dbw->begin();
+               $dbw->begin( __METHOD__ );
                $realLatest = $dbw->selectField( 'page', 'page_latest', array( 'page_id' => $pageID ),
                        __METHOD__, 'FOR UPDATE' );
                # list( $masterFile, $masterPos ) = $dbw->getMasterPos();
@@ -97,7 +98,7 @@ class FixSlaveDesync extends Maintenance {
                        /*
                        if ( !$db->masterPosWait( $masterFile, $masterPos, 10 ) ) {
                                   $this->output( "Slave is too lagged, aborting\n" );
-                                  $dbw->commit();
+                                  $dbw->commit( __METHOD__ );
                                   sleep(10);
                                   return;
                        }*/
@@ -111,7 +112,7 @@ class FixSlaveDesync extends Maintenance {
                }
                if ( !$found ) {
                        $this->output( "page_id $pageID seems fine\n" );
-                       $dbw->commit();
+                       $dbw->commit( __METHOD__ );
                        return;
                }
 
@@ -123,7 +124,7 @@ class FixSlaveDesync extends Maintenance {
                        $masterIDs[] = $row->rev_id;
                }
 
-               $res = $db->select( 'revision', array( 'rev_id' ), array( 'rev_page' => $pageID ), __METHOD__ );
+               $res = $dbw->select( 'revision', array( 'rev_id' ), array( 'rev_page' => $pageID ), __METHOD__ );
                $slaveIDs = array();
                foreach ( $res as $row ) {
                        $slaveIDs[] = $row->rev_id;
@@ -132,7 +133,7 @@ class FixSlaveDesync extends Maintenance {
                        $missingIDs = array_diff( $slaveIDs, $masterIDs );
                        if ( count( $missingIDs ) ) {
                                $this->output( "Found " . count( $missingIDs ) . " lost in master, copying from slave... " );
-                               $dbFrom = $db;
+                               $dbFrom = $dbw;
                                $found = true;
                                $toMaster = true;
                        } else {
@@ -198,9 +199,9 @@ class FixSlaveDesync extends Maintenance {
                        }
                        $this->output( "done\n" );
                }
-               $dbw->commit();
+               $dbw->commit( __METHOD__ );
        }
 }
 
 $maintClass = "FixSlaveDesync";
-require_once( DO_MAINTENANCE );
+require_once( RUN_MAINTENANCE_IF_MAIN );