From 35ebcebdacb10dd8c097272c24022e7eb0000022 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Tue, 20 Nov 2018 23:06:22 -0800 Subject: [PATCH] rdbms: add DBConnRef sanity check to LoadBalancer::closeConnection Change-Id: I0473ffb1f89301530518f1921fe9d5ca68eb194c --- includes/libs/rdbms/loadbalancer/LoadBalancer.php | 5 +++++ 1 file changed, 5 insertions(+) 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] ) ) { -- 2.20.1