This is an automated email from the ASF dual-hosted git repository. stoty pushed a commit to branch 5.1 in repository https://gitbox.apache.org/repos/asf/phoenix.git
The following commit(s) were added to refs/heads/5.1 by this push: new 34bf173615 PHOENIX-6874 Support older HBase versions with broken ShortCircuitConnection 34bf173615 is described below commit 34bf1736158f0d0277e25ae2b6599f8ac9a1735d Author: Istvan Toth <st...@apache.org> AuthorDate: Fri Feb 10 20:41:09 2023 +0100 PHOENIX-6874 Support older HBase versions with broken ShortCircuitConnection --- .../src/main/java/org/apache/phoenix/util/ServerUtil.java | 3 ++- .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 6 ++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 13 +++++++++++++ .../java/org/apache/phoenix/compat/hbase/CompatUtil.java | 5 +++++ 7 files changed, 44 insertions(+), 1 deletion(-) diff --git a/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java b/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java index 968d6ef21c..3f1482604d 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/util/ServerUtil.java @@ -47,6 +47,7 @@ import org.apache.hadoop.hbase.ipc.controller.InterRegionServerIndexRpcControlle import org.apache.hadoop.hbase.regionserver.Region; import org.apache.hadoop.hbase.regionserver.Region.RowLock; import org.apache.hadoop.hbase.util.Bytes; +import org.apache.phoenix.compat.hbase.CompatUtil; import org.apache.phoenix.coprocessor.HashJoinCacheNotFoundException; import org.apache.phoenix.exception.PhoenixIOException; import org.apache.phoenix.exception.SQLExceptionCode; @@ -311,7 +312,7 @@ public class ServerUtil { @Override public Connection apply(ConnectionType t) { try { - return env.createConnection(getTypeSpecificConfiguration(connectionType, env.getConfiguration())); + return CompatUtil.createShortCircuitConnection(getTypeSpecificConfiguration(connectionType, env.getConfiguration()), env); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java index be773ef0c7..6977af5b0a 100644 --- a/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java +++ b/phoenix-hbase-compat-2.1.6/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java @@ -25,6 +25,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.io.hfile.HFileContextBuilder; import org.apache.hadoop.hbase.regionserver.HStore; @@ -85,4 +86,9 @@ public class CompatUtil { return HStore.getBytesPerChecksum(conf); } + public static Connection createShortCircuitConnection(final Configuration configuration, + final RegionCoprocessorEnvironment env) throws IOException { + //Short Circuit connections are broken before 2.4.12 + return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration); + } } diff --git a/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java index be4b2d434a..59a87ece90 100644 --- a/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java +++ b/phoenix-hbase-compat-2.2.5/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java @@ -25,6 +25,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.io.hfile.HFileContextBuilder; import org.apache.hadoop.hbase.regionserver.HStore; @@ -85,4 +86,9 @@ public class CompatUtil { return HStore.getBytesPerChecksum(conf); } + public static Connection createShortCircuitConnection(final Configuration configuration, + final RegionCoprocessorEnvironment env) throws IOException { + //Short Circuit connections are broken before 2.4.12 + return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration); + } } diff --git a/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java index 8c2ae9e6c1..2fbeebba08 100644 --- a/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java +++ b/phoenix-hbase-compat-2.3.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java @@ -28,6 +28,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; @@ -145,4 +146,9 @@ public class CompatUtil { return HStore.getBytesPerChecksum(conf); } + public static Connection createShortCircuitConnection(final Configuration configuration, + final RegionCoprocessorEnvironment env) throws IOException { + //Short Circuit connections are broken before 2.4.12 + return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration); + } } diff --git a/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java index 073035f649..e9c51d2639 100644 --- a/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java +++ b/phoenix-hbase-compat-2.4.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java @@ -28,6 +28,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; @@ -146,4 +147,9 @@ public class CompatUtil { return HStore.getBytesPerChecksum(conf); } + public static Connection createShortCircuitConnection(final Configuration configuration, + final RegionCoprocessorEnvironment env) throws IOException { + //Short Circuit connections are broken before 2.4.12 + return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration); + } } diff --git a/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java index a86aa4020d..1588d5963c 100644 --- a/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java +++ b/phoenix-hbase-compat-2.4.1/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java @@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; @@ -40,6 +41,7 @@ import org.apache.hadoop.hbase.regionserver.StoreUtils; import org.apache.hadoop.hbase.security.access.Permission; import org.apache.hadoop.hbase.security.access.PermissionStorage; import org.apache.hadoop.hbase.util.ChecksumType; +import org.apache.hadoop.hbase.util.VersionInfo; import org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,6 +52,9 @@ public class CompatUtil { private static final Logger LOGGER = LoggerFactory.getLogger( CompatUtil.class); + private static boolean hasFixedShortCircuitConnection = + VersionInfo.compareVersion(VersionInfo.getVersion(), "2.4.12") >= 0; + private CompatUtil() { //Not to be instantiated } @@ -146,4 +151,12 @@ public class CompatUtil { return StoreUtils.getBytesPerChecksum(conf); } + public static Connection createShortCircuitConnection(final Configuration configuration, + final RegionCoprocessorEnvironment env) throws IOException { + if (hasFixedShortCircuitConnection) { + return env.createConnection(configuration); + } else { + return org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(configuration); + } + } } diff --git a/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java b/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java index a86aa4020d..9697b35ef6 100644 --- a/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java +++ b/phoenix-hbase-compat-2.5.0/src/main/java/org/apache/phoenix/compat/hbase/CompatUtil.java @@ -30,6 +30,7 @@ import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.Admin; import org.apache.hadoop.hbase.client.Connection; import org.apache.hadoop.hbase.client.Scan; +import org.apache.hadoop.hbase.coprocessor.RegionCoprocessorEnvironment; import org.apache.hadoop.hbase.exceptions.DeserializationException; import org.apache.hadoop.hbase.io.compress.Compression.Algorithm; import org.apache.hadoop.hbase.io.encoding.DataBlockEncoding; @@ -146,4 +147,8 @@ public class CompatUtil { return StoreUtils.getBytesPerChecksum(conf); } + public static Connection createShortCircuitConnection(final Configuration configuration, + final RegionCoprocessorEnvironment env) throws IOException { + return env.createConnection(configuration); + } }