Addshore has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/401736 )

Change subject: WIP DNM MCR RevisionStore::checkDatabaseWikiId use 
DatabaseDomain
......................................................................

WIP DNM MCR RevisionStore::checkDatabaseWikiId use DatabaseDomain

This still doesn't work for the case in T183914 as the dbname includes
a - and wfSplitWikiID splits this off assuming it is a prefix..

> var_dump(wfSplitWikiID(wfWikiID()));
array(2) {
  [0] =>
  string(12) "s53402__wmde"
  [1] =>
  string(8) "uca-test"
}

We can not comapre a wikiId with a dbDomainId here.
So convert any wikiIds to dbDomainIds before comapring.

Bug: T183914
Change-Id: I45a151a332145438c484e02bbe96cd85dd602b9e
---
M includes/Storage/RevisionStore.php
1 file changed, 16 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/36/401736/3

diff --git a/includes/Storage/RevisionStore.php 
b/includes/Storage/RevisionStore.php
index ce56efc..8587148 100644
--- a/includes/Storage/RevisionStore.php
+++ b/includes/Storage/RevisionStore.php
@@ -49,6 +49,7 @@
 use WANObjectCache;
 use Wikimedia\Assert\Assert;
 use Wikimedia\Rdbms\Database;
+use Wikimedia\Rdbms\DatabaseDomain;
 use Wikimedia\Rdbms\DBConnRef;
 use Wikimedia\Rdbms\IDatabase;
 use Wikimedia\Rdbms\LoadBalancer;
@@ -1465,21 +1466,25 @@
         * @throws MWException
         */
        private function checkDatabaseWikiId( IDatabase $db ) {
-               $storeWiki = $this->wikiId;
-               $dbWiki = $db->getDomainID();
+               $dbDomainId = $db->getDomainID();
 
-               if ( $dbWiki === $storeWiki ) {
+               if ( $this->wikiId ) {
+                       $wikiId = $this->wikiId;
+               } else {
+                       // XXX: we really want the default database ID...
+                       $wikiId = wfWikiID();
+               }
+
+               list( $storeDbName, $storeDbPrefix ) = wfSplitWikiID( $wikiId );
+
+               $storeDomain = new DatabaseDomain( $storeDbName, null, 
$storeDbPrefix );
+               $storeDomainId = $storeDomain->getId();
+               if ( $storeDomainId === $dbDomainId ) {
                        return;
                }
 
-               // XXX: we really want the default database ID...
-               $storeWiki = $storeWiki ?: wfWikiID();
-               $dbWiki = $dbWiki ?: wfWikiID();
-
-               if ( $dbWiki !== $storeWiki ) {
-                       throw new MWException( "RevisionStore for $storeWiki "
-                               . "cannot be used with a DB connection for 
$dbWiki" );
-               }
+               throw new MWException( "RevisionStore for $storeDomainId "
+                       . "cannot be used with a DB connection for $dbDomainId" 
);
        }
 
        /**

-- 
To view, visit https://gerrit.wikimedia.org/r/401736
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I45a151a332145438c484e02bbe96cd85dd602b9e
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Addshore <addshorew...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to