From: Aaron Schulz Date: Wed, 21 Nov 2018 07:06:22 +0000 (-0800) Subject: rdbms: add DBConnRef sanity check to LoadBalancer::closeConnection X-Git-Tag: 1.34.0-rc.0~3457^2 X-Git-Url: http://git.cyclocoop.org/%22.htmlspecialchars%28%24url_syndic%29.%22?a=commitdiff_plain;h=35ebcebdacb10dd8c097272c24022e7eb0000022;p=lhc%2Fweb%2Fwiklou.git rdbms: add DBConnRef sanity check to LoadBalancer::closeConnection Change-Id: I0473ffb1f89301530518f1921fe9d5ca68eb194c --- diff --git a/includes/libs/rdbms/loadbalancer/LoadBalancer.php b/includes/libs/rdbms/loadbalancer/LoadBalancer.php index 7721707a54..537301ca5a 100644 --- a/includes/libs/rdbms/loadbalancer/LoadBalancer.php +++ b/includes/libs/rdbms/loadbalancer/LoadBalancer.php @@ -1281,6 +1281,11 @@ class LoadBalancer implements ILoadBalancer { } public function closeConnection( IDatabase $conn ) { + if ( $conn instanceof DBConnRef ) { + // Avoid calling close() but still leaving the handle in the pool + throw new RuntimeException( __METHOD__ . ': got DBConnRef instance.' ); + } + $serverIndex = $conn->getLBInfo( 'serverIndex' ); foreach ( $this->conns as $type => $connsByServer ) { if ( !isset( $connsByServer[$serverIndex] ) ) {