From: Aaron Schulz Date: Sat, 29 Apr 2017 05:10:43 +0000 (-0700) Subject: Avoid master queries in loadAndLazyInit() for miser mode X-Git-Tag: 1.31.0-rc.0~3385^2 X-Git-Url: https://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/bilan.php?a=commitdiff_plain;h=b89d9b11627bbb6490af2688c2c6148e57c872f3;p=lhc%2Fweb%2Fwiklou.git Avoid master queries in loadAndLazyInit() for miser mode Bug: T92357 Change-Id: Idaef633d9039cdbfa3bd123018f2339c6d489fe4 --- diff --git a/includes/SiteStats.php b/includes/SiteStats.php index 1c7730c971..ac5e49e70e 100644 --- a/includes/SiteStats.php +++ b/includes/SiteStats.php @@ -22,6 +22,7 @@ use Wikimedia\Rdbms\Database; use Wikimedia\Rdbms\IDatabase; +use MediaWiki\MediaWikiServices; /** * Static accessor class for site_stats and related things @@ -78,9 +79,12 @@ class SiteStats { $row = self::doLoad( wfGetDB( DB_REPLICA ) ); if ( !self::isSane( $row ) ) { - // Might have just been initialized during this request? Underflow? - wfDebug( __METHOD__ . ": site_stats damaged or missing on replica DB\n" ); - $row = self::doLoad( wfGetDB( DB_MASTER ) ); + $lb = MediaWikiServices::getInstance()->getDBLoadBalancer(); + if ( $lb->hasOrMadeRecentMasterChanges() ) { + // Might have just been initialized during this request? Underflow? + wfDebug( __METHOD__ . ": site_stats damaged or missing on replica DB\n" ); + $row = self::doLoad( wfGetDB( DB_MASTER ) ); + } } if ( !$wgMiserMode && !self::isSane( $row ) ) { @@ -98,6 +102,7 @@ class SiteStats { if ( !self::isSane( $row ) ) { wfDebug( __METHOD__ . ": site_stats persistently nonsensical o_O\n" ); } + return $row; }