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 <[email protected]>
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) {