This is an automated email from the ASF dual-hosted git repository.

zhangduo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/master by this push:
     new beb36e811cc HBASE-28608 Correct client meta operation timeout to 
default to client operation timeout (#6000)
beb36e811cc is described below

commit beb36e811cc60f2f9e7c613a94396a797b2b5ef5
Author: droudnitsky <[email protected]>
AuthorDate: Thu Nov 21 09:32:22 2024 -0500

    HBASE-28608 Correct client meta operation timeout to default to client 
operation timeout (#6000)
    
    Co-authored-by: Daniel Roudnitsky <[email protected]>
    Signed-off-by: Duo Zhang [email protected]
---
 .../hbase/client/AsyncConnectionConfiguration.java |  9 ++---
 .../hbase/client/ConnectionConfiguration.java      |  3 +-
 .../client/TestAsyncConnectionConfiguration.java   | 14 +++++++-
 ...ation.java => TestConnectionConfiguration.java} | 40 ++++++----------------
 4 files changed, 30 insertions(+), 36 deletions(-)

diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
index b269508f701..5dc9f6d3b41 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/AsyncConnectionConfiguration.java
@@ -149,10 +149,11 @@ class AsyncConnectionConfiguration {
   private final int maxKeyValueSize;
 
   AsyncConnectionConfiguration(Configuration conf) {
-    this.metaOperationTimeoutNs = TimeUnit.MILLISECONDS.toNanos(
-      conf.getLong(HBASE_CLIENT_META_OPERATION_TIMEOUT, 
DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));
-    this.operationTimeoutNs = TimeUnit.MILLISECONDS.toNanos(
-      conf.getLong(HBASE_CLIENT_OPERATION_TIMEOUT, 
DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));
+    long operationTimeoutMs =
+      conf.getLong(HBASE_CLIENT_OPERATION_TIMEOUT, 
DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
+    this.operationTimeoutNs = 
TimeUnit.MILLISECONDS.toNanos(operationTimeoutMs);
+    this.metaOperationTimeoutNs = TimeUnit.MILLISECONDS
+      .toNanos(conf.getLong(HBASE_CLIENT_META_OPERATION_TIMEOUT, 
operationTimeoutMs));
     long rpcTimeoutMs = conf.getLong(HBASE_RPC_TIMEOUT_KEY, 
DEFAULT_HBASE_RPC_TIMEOUT);
     this.rpcTimeoutNs = TimeUnit.MILLISECONDS.toNanos(rpcTimeoutMs);
     long readRpcTimeoutMillis = conf.getLong(HBASE_RPC_READ_TIMEOUT_KEY, 
rpcTimeoutMs);
diff --git 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
index db7ef8e63c1..56f3a65c957 100644
--- 
a/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
+++ 
b/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ConnectionConfiguration.java
@@ -87,7 +87,8 @@ public class ConnectionConfiguration {
       WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS, 
WRITE_BUFFER_PERIODIC_FLUSH_TIMERTICK_MS_DEFAULT);
 
     this.metaOperationTimeout = 
conf.getInt(HConstants.HBASE_CLIENT_META_OPERATION_TIMEOUT,
-      HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
+      conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,
+        HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT));
 
     this.operationTimeout = 
conf.getInt(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT,
       HConstants.DEFAULT_HBASE_CLIENT_OPERATION_TIMEOUT);
diff --git 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
index 022cab91267..49f595a6945 100644
--- 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
+++ 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
@@ -32,7 +32,7 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 /**
- * See HBASE-24513.
+ * See HBASE-24513, HBASE-28608.
  */
 @Category({ ClientTests.class, SmallTests.class })
 public class TestAsyncConnectionConfiguration {
@@ -69,4 +69,16 @@ public class TestAsyncConnectionConfiguration {
     assertEquals(expected, config.getReadRpcTimeoutNs());
     assertEquals(expected, config.getWriteRpcTimeoutNs());
   }
+
+  @Test
+  public void testDefaultMetaOperationTimeout() {
+    Configuration conf = HBaseConfiguration.create();
+    long timeoutMs = 1000;
+    conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, timeoutMs);
+    AsyncConnectionConfiguration config = new 
AsyncConnectionConfiguration(conf);
+    long expected = TimeUnit.MILLISECONDS.toNanos(timeoutMs);
+    assertEquals(expected, config.getOperationTimeoutNs());
+    assertEquals(expected, config.getMetaOperationTimeoutNs());
+  }
+
 }
diff --git 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestConnectionConfiguration.java
similarity index 51%
copy from 
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
copy to 
hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestConnectionConfiguration.java
index 022cab91267..9d2e467d3b1 100644
--- 
a/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestAsyncConnectionConfiguration.java
+++ 
b/hbase-client/src/test/java/org/apache/hadoop/hbase/client/TestConnectionConfiguration.java
@@ -18,9 +18,7 @@
 package org.apache.hadoop.hbase.client;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
 
-import java.util.concurrent.TimeUnit;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseClassTestRule;
 import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -32,41 +30,23 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
 /**
- * See HBASE-24513.
+ * See HBASE-28608. Configuration tests for (non async) connections
  */
 @Category({ ClientTests.class, SmallTests.class })
-public class TestAsyncConnectionConfiguration {
+public class TestConnectionConfiguration {
 
   @ClassRule
   public static final HBaseClassTestRule CLASS_RULE =
-    HBaseClassTestRule.forClass(TestAsyncConnectionConfiguration.class);
+    HBaseClassTestRule.forClass(TestConnectionConfiguration.class);
 
   @Test
-  public void itHandlesDeprecatedPauseForCQTBE() {
-    Configuration conf = new Configuration();
-    long timeoutMs = 1000;
-    conf.setLong(HConstants.HBASE_CLIENT_PAUSE_FOR_CQTBE, timeoutMs);
-    AsyncConnectionConfiguration config = new 
AsyncConnectionConfiguration(conf);
-
-    
assertTrue(Configuration.isDeprecated(HConstants.HBASE_CLIENT_PAUSE_FOR_CQTBE));
-    long expected = TimeUnit.MILLISECONDS.toNanos(timeoutMs);
-    assertEquals(expected, config.getPauseNsForServerOverloaded());
-
-    conf = new Configuration();
-    
conf.setLong(AsyncConnectionConfiguration.HBASE_CLIENT_PAUSE_FOR_SERVER_OVERLOADED,
 timeoutMs);
-    config = new AsyncConnectionConfiguration(conf);
-    assertEquals(expected, config.getPauseNsForServerOverloaded());
-  }
-
-  @Test
-  public void testDefaultReadWriteRpcTimeout() {
+  public void testDefaultMetaOperationTimeout() {
     Configuration conf = HBaseConfiguration.create();
-    long timeoutMs = 1000;
-    conf.setLong(HConstants.HBASE_RPC_TIMEOUT_KEY, timeoutMs);
-    AsyncConnectionConfiguration config = new 
AsyncConnectionConfiguration(conf);
-    long expected = TimeUnit.MILLISECONDS.toNanos(timeoutMs);
-    assertEquals(expected, config.getRpcTimeoutNs());
-    assertEquals(expected, config.getReadRpcTimeoutNs());
-    assertEquals(expected, config.getWriteRpcTimeoutNs());
+    long clientOperationTimeoutMs = 1000;
+    conf.setLong(HConstants.HBASE_CLIENT_OPERATION_TIMEOUT, 
clientOperationTimeoutMs);
+    ConnectionConfiguration config = new ConnectionConfiguration(conf);
+    assertEquals(clientOperationTimeoutMs, config.getOperationTimeout());
+    assertEquals(clientOperationTimeoutMs, config.getMetaOperationTimeout());
   }
+
 }

Reply via email to