Revert "rdbms: add domain sanity checks to LoadBalancer connection methods"
authorKrinkle <krinklemail@gmail.com>
Sat, 13 Oct 2018 00:35:55 +0000 (00:35 +0000)
committerKrinkle <krinklemail@gmail.com>
Sat, 13 Oct 2018 00:35:55 +0000 (00:35 +0000)
This reverts commit b416e166a3eba1dcfc2e912e37e443981d7f60ef.

Fails on Travis CI / PHP 7.1 / Postgres:

> Creating administrator user account
>
> UnexpectedValueException:
> Got connection to 'traviswiki-mediawiki', but expected 'traviswiki'.
>
> Backtrace:
> #0 includes/libs/rdbms/loadbalancer/LoadBalancer.php(887): Wikimedia\Rdbms\LoadBalancer->openForeignConnection(integer, string, integer)
> #1 includes/libs/rdbms/loadbalancer/LoadBalancer.php(766): Wikimedia\Rdbms\LoadBalancer->openConnection(integer, string, integer)
> #2 includes/libs/rdbms/loadbalancer/LoadBalancer.php(851): Wikimedia\Rdbms\LoadBalancer->getConnection(integer, array, string, integer)
> #3 includes/jobqueue/JobQueueDB.php(780): Wikimedia\Rdbms\LoadBalancer->getConnectionRef(integer, array, string, integer)
> #4 includes/jobqueue/JobQueueDB.php(761): JobQueueDB->getDB(integer)
> #5 includes/jobqueue/JobQueueDB.php(187): JobQueueDB->getMasterDB()
> #6 includes/jobqueue/JobQueue.php(332): JobQueueDB->doBatchPush(array, integer)
> #7 includes/jobqueue/JobQueue.php(302): JobQueue->batchPush(array, integer)
> #8 includes/jobqueue/JobQueueGroup.php(154): JobQueue->push(array)
> #9 includes/user/UserGroupMembership.php(162): JobQueueGroup->push(array)
> #10 includes/user/User.php(3733): UserGroupMembership->insert(boolean)
> #11 includes/installer/Installer.php(1680): User->addGroup(string)
> #12 includes/installer/Installer.php(1601): Installer->createSysop(PostgresInstaller)
> #13 includes/installer/CliInstaller.php(176): Installer->performInstallation(array, array)

Change-Id: I269df89d47cc5a183af630447cd1642d3d4a3deb

includes/libs/rdbms/loadbalancer/LoadBalancer.php

index ff762b4..d84ba65 100644 (file)
@@ -28,7 +28,6 @@ use BagOStuff;
 use EmptyBagOStuff;
 use WANObjectCache;
 use ArrayUtils;
-use UnexpectedValueException;
 use InvalidArgumentException;
 use RuntimeException;
 use Exception;
@@ -953,17 +952,6 @@ class LoadBalancer implements ILoadBalancer {
                        }
                }
 
-               // Final sanity check to make sure the right domain is selected
-               if (
-                       $conn instanceof IDatabase &&
-                       $this->localDomain->getDatabase() !== null &&
-                       $conn->getDomainID() !== $this->localDomain->getId()
-               ) {
-                       throw new UnexpectedValueException(
-                               "Got connection to '{$conn->getDomainID()}', " .
-                               "but expected local domain ('{$this->localDomain}')." );
-               }
-
                return $conn;
        }
 
@@ -1050,13 +1038,8 @@ class LoadBalancer implements ILoadBalancer {
                        }
                }
 
+               // Increment reference count
                if ( $conn instanceof IDatabase ) {
-                       // Final sanity check to make sure the right domain is selected
-                       if ( $domainInstance->getDatabase() !== null && $conn->getDomainID() !== $domain ) {
-                               throw new UnexpectedValueException(
-                                       "Got connection to '{$conn->getDomainID()}', but expected '$domain'." );
-                       }
-                       // Increment reference count
                        $refCount = $conn->getLBInfo( 'foreignPoolRefCount' );
                        $conn->setLBInfo( 'foreignPoolRefCount', $refCount + 1 );
                }