From b89d9b11627bbb6490af2688c2c6148e57c872f3 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Fri, 28 Apr 2017 22:10:43 -0700 Subject: [PATCH] Avoid master queries in loadAndLazyInit() for miser mode Bug: T92357 Change-Id: Idaef633d9039cdbfa3bd123018f2339c6d489fe4 --- includes/SiteStats.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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; } -- 2.20.1