X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;ds=sidebyside;f=includes%2Fpage%2FWikiPage.php;h=d403ab5810e09e7409030fcff3241efda5c81cc6;hb=64f08b23ee6f29cd38289f8d48bad7469d248107;hp=6af794573093f10b5a397577ae4d0e12b8ca715c;hpb=e94861e5dee3105630324558bc0849eee1116d42;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index 6af7945730..d403ab5810 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -21,8 +21,8 @@ */ use MediaWiki\Edit\PreparedEdit; -use \MediaWiki\Logger\LoggerFactory; -use \MediaWiki\MediaWikiServices; +use MediaWiki\Logger\LoggerFactory; +use MediaWiki\MediaWikiServices; use Wikimedia\Assert\Assert; use Wikimedia\Rdbms\FakeResultWrapper; use Wikimedia\Rdbms\IDatabase; @@ -434,8 +434,9 @@ class WikiPage implements Page, IDBAccessObject { if ( is_int( $from ) ) { list( $index, $opts ) = DBAccessObjectUtils::getDBOptions( $from ); - $data = $this->pageDataFromTitle( wfGetDB( $index ), $this->mTitle, $opts ); $loadBalancer = MediaWikiServices::getInstance()->getDBLoadBalancer(); + $db = $loadBalancer->getConnection( $index ); + $data = $this->pageDataFromTitle( $db, $this->mTitle, $opts ); if ( !$data && $index == DB_REPLICA @@ -444,7 +445,8 @@ class WikiPage implements Page, IDBAccessObject { ) { $from = self::READ_LATEST; list( $index, $opts ) = DBAccessObjectUtils::getDBOptions( $from ); - $data = $this->pageDataFromTitle( wfGetDB( $index ), $this->mTitle, $opts ); + $db = $loadBalancer->getConnection( $index ); + $data = $this->pageDataFromTitle( $db, $this->mTitle, $opts ); } } else { // No idea from where the caller got this data, assume replica DB. @@ -1425,16 +1427,17 @@ class WikiPage implements Page, IDBAccessObject { ) { $baseRevId = null; if ( $edittime && $sectionId !== 'new' ) { - $dbr = wfGetDB( DB_REPLICA ); + $lb = MediaWikiServices::getInstance()->getDBLoadBalancer(); + $dbr = $lb->getConnection( DB_REPLICA ); $rev = Revision::loadFromTimestamp( $dbr, $this->mTitle, $edittime ); // Try the master if this thread may have just added it. // This could be abstracted into a Revision method, but we don't want // to encourage loading of revisions by timestamp. if ( !$rev - && wfGetLB()->getServerCount() > 1 - && wfGetLB()->hasOrMadeRecentMasterChanges() + && $lb->getServerCount() > 1 + && $lb->hasOrMadeRecentMasterChanges() ) { - $dbw = wfGetDB( DB_MASTER ); + $dbw = $lb->getConnection( DB_MASTER ); $rev = Revision::loadFromTimestamp( $dbw, $this->mTitle, $edittime ); } if ( $rev ) { @@ -3353,6 +3356,8 @@ class WikiPage implements Page, IDBAccessObject { */ public static function onArticleDelete( Title $title ) { // Update existence markers on article/talk tabs... + // Clear Backlink cache first so that purge jobs use more up-to-date backlink information + BacklinkCache::get( $title )->clear(); $other = $title->getOtherPage(); $other->purgeSquid();