Merge "Push pagination decision for search into SearchEngine"
[lhc/web/wiklou.git] / maintenance / updateSpecialPages.php
index 58f23df..3c4d1f9 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.
  *
@@ -48,7 +51,7 @@ class UpdateSpecialPages extends Maintenance {
 
                foreach ( QueryPage::getPages() as $page ) {
                        list( $class, $special ) = $page;
-                       $limit = isset( $page[2] ) ? $page[2] : null;
+                       $limit = $page[2] ?? null;
 
                        # --list : just show the name of pages
                        if ( $this->hasOption( 'list' ) ) {
@@ -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;