This is an automated email from the ASF dual-hosted git repository. apurtell pushed a commit to branch 5.2 in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/5.2 by this push: new 4dd4227454 PHOENIX-7645 HighAvailabilityGroup can leak zookeeper connections (#2200) 4dd4227454 is described below commit 4dd422745416bd3d933f3431b30ccea1eec9edc4 Author: Andrew Purtell <apurt...@apache.org> AuthorDate: Wed Jun 25 10:14:19 2025 -0700 PHOENIX-7645 HighAvailabilityGroup can leak zookeeper connections (#2200) --- .../apache/phoenix/jdbc/HighAvailabilityGroup.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/phoenix-core-client/src/main/java/org/apache/phoenix/jdbc/HighAvailabilityGroup.java b/phoenix-core-client/src/main/java/org/apache/phoenix/jdbc/HighAvailabilityGroup.java index fb2137d106..d28a280633 100644 --- a/phoenix-core-client/src/main/java/org/apache/phoenix/jdbc/HighAvailabilityGroup.java +++ b/phoenix-core-client/src/main/java/org/apache/phoenix/jdbc/HighAvailabilityGroup.java @@ -330,10 +330,21 @@ public class HighAvailabilityGroup { try { return CURATOR_CACHE.get(jdbcUrl, () -> { CuratorFramework curator = createCurator(jdbcUrl, properties); - if (!curator.blockUntilConnected(PHOENIX_HA_ZK_CONNECTION_TIMEOUT_MS_DEFAULT, - TimeUnit.MILLISECONDS)) - throw new RuntimeException("Failed to connect to the CuratorFramework in " - + "timeout " + PHOENIX_HA_ZK_CONNECTION_TIMEOUT_MS_DEFAULT + " ms"); + try { + if (!curator.blockUntilConnected(PHOENIX_HA_ZK_CONNECTION_TIMEOUT_MS_DEFAULT, + TimeUnit.MILLISECONDS)) { + throw new RuntimeException("Failed to connect to the CuratorFramework in " + + "timeout " + PHOENIX_HA_ZK_CONNECTION_TIMEOUT_MS_DEFAULT + " ms"); + } + } catch (Exception e) { + LOG.warn("HA cluster role manager getCurator thread for '{}' is interrupted" + + ", closing CuratorFramework", jdbcUrl, e); + curator.close(); + if (e instanceof InterruptedException) { + Thread.currentThread().interrupt(); + } + throw e; + } return curator; }); } catch (Exception e) {