registration: Improve duplicate config setting exception
[lhc/web/wiklou.git] / maintenance / updateSpecialPages.php
index e2c0c61..1491e62 100644 (file)
@@ -24,6 +24,9 @@
 
 require_once __DIR__ . '/Maintenance.php';
 
+use MediaWiki\MediaWikiServices;
+use Wikimedia\Rdbms\DBReplicationWaitError;
+
 /**
  * Maintenance script to update cached special pages.
  *
@@ -72,7 +75,7 @@ class UpdateSpecialPages extends Maintenance {
                                $queryPage = $specialObj;
                        } else {
                                $class = get_class( $specialObj );
-                               $this->error( "$class is not an instance of QueryPage.\n", 1 );
+                               $this->fatalError( "$class is not an instance of QueryPage.\n" );
                                die;
                        }
 
@@ -119,16 +122,22 @@ class UpdateSpecialPages extends Maintenance {
         * mysql connection to "go away"
         */
        private function reopenAndWaitForReplicas() {
-               if ( !wfGetLB()->pingAll() ) {
+               $lbFactory = MediaWikiServices::getInstance()->getDBLoadBalancerFactory();
+               $lb = $lbFactory->getMainLB();
+               if ( !$lb->pingAll() ) {
                        $this->output( "\n" );
                        do {
                                $this->error( "Connection failed, reconnecting in 10 seconds..." );
                                sleep( 10 );
-                       } while ( !wfGetLB()->pingAll() );
+                       } while ( !$lb->pingAll() );
                        $this->output( "Reconnected\n\n" );
                }
-               # Wait for the replica DB to catch up
-               wfWaitForSlaves();
+               // Wait for the replica DB to catch up
+               try {
+                       $lbFactory->waitForReplication();
+               } catch ( DBReplicationWaitError $e ) {
+                       // ignore
+               }
        }
 
        public function doSpecialPageCacheUpdates( $dbw ) {
@@ -170,5 +179,5 @@ class UpdateSpecialPages extends Maintenance {
        }
 }
 
-$maintClass = "UpdateSpecialPages";
+$maintClass = UpdateSpecialPages::class;
 require_once RUN_MAINTENANCE_IF_MAIN;