From f2f82dcb948811ac5abc1beda4431822c99e76cf Mon Sep 17 00:00:00 2001 From: Tim Starling Date: Wed, 22 Aug 2018 16:47:04 +1000 Subject: [PATCH] The BlobStoreFactory constructor needs an LBFactory BlobStoreFactory::newBlobStore() takes a wiki ID as a parameter, so it needs an LBFactory to fetch the correct LoadBalancer from. Bug: T202483 Change-Id: I834cd95251d76cb862600362525faf60d4e170b9 --- includes/ServiceWiring.php | 2 +- includes/Storage/BlobStoreFactory.php | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/includes/ServiceWiring.php b/includes/ServiceWiring.php index 1a19465ed5..99b2942ef6 100644 --- a/includes/ServiceWiring.php +++ b/includes/ServiceWiring.php @@ -72,7 +72,7 @@ return [ 'BlobStoreFactory' => function ( MediaWikiServices $services ) : BlobStoreFactory { return new BlobStoreFactory( - $services->getDBLoadBalancer(), + $services->getDBLoadBalancerFactory(), $services->getMainWANObjectCache(), $services->getMainConfig(), $services->getContentLanguage() diff --git a/includes/Storage/BlobStoreFactory.php b/includes/Storage/BlobStoreFactory.php index 63ca74def4..4e1f97ffe1 100644 --- a/includes/Storage/BlobStoreFactory.php +++ b/includes/Storage/BlobStoreFactory.php @@ -23,7 +23,7 @@ namespace MediaWiki\Storage; use Config; use Language; use WANObjectCache; -use Wikimedia\Rdbms\LoadBalancer; +use Wikimedia\Rdbms\LBFactory; /** * Service for instantiating BlobStores @@ -35,9 +35,9 @@ use Wikimedia\Rdbms\LoadBalancer; class BlobStoreFactory { /** - * @var LoadBalancer + * @var LBFactory */ - private $loadBalancer; + private $lbFactory; /** * @var WANObjectCache @@ -55,12 +55,12 @@ class BlobStoreFactory { private $contLang; public function __construct( - LoadBalancer $loadBalancer, + LBFactory $lbFactory, WANObjectCache $cache, Config $mainConfig, Language $contLang ) { - $this->loadBalancer = $loadBalancer; + $this->lbFactory = $lbFactory; $this->cache = $cache; $this->config = $mainConfig; $this->contLang = $contLang; @@ -85,8 +85,9 @@ class BlobStoreFactory { * @return SqlBlobStore */ public function newSqlBlobStore( $wikiId = false ) { + $lb = $this->lbFactory->getMainLB( $wikiId ); $store = new SqlBlobStore( - $this->loadBalancer, + $lb, $this->cache, $wikiId ); -- 2.20.1