From 7bbbd3dafcd7e795d8e078c451abfe080e9cbf36 Mon Sep 17 00:00:00 2001 From: Wellington Ramos Chevreuil Date: Mon, 18 Oct 2021 13:59:42 +0100 Subject: [PATCH] HBASE-26364 TestThriftServer is failing 100% in our flaky test job (#3759) Signed-off-by: Xiaolin Ha Signed-off-by: Duo Zhang (cherry picked from commit 4454c2f90949950c1ed3b54c0e2e60b730a5178d) --- .../hadoop/hbase/thrift/TestThriftServer.java | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java index ee525f0aac7..c5e0199a1e1 100644 --- a/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java +++ b/hbase-thrift/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java @@ -774,44 +774,47 @@ public class TestThriftServer { String col = "c"; // create a table which will throw exceptions for requests final TableName tableName = TableName.valueOf(name.getMethodName()); - HTableDescriptor tableDesc = new HTableDescriptor(tableName); - tableDesc.addCoprocessor(ErrorThrowingGetObserver.class.getName()); - tableDesc.addFamily(new HColumnDescriptor(family)); + try { + HTableDescriptor tableDesc = new HTableDescriptor(tableName); + tableDesc.addCoprocessor(ErrorThrowingGetObserver.class.getName()); + tableDesc.addFamily(new HColumnDescriptor(family)); - Table table = UTIL.createTable(tableDesc, null); - long now = System.currentTimeMillis(); - table.put(new Put(Bytes.toBytes(rowkey)) + Table table = UTIL.createTable(tableDesc, null); + long now = System.currentTimeMillis(); + table.put(new Put(Bytes.toBytes(rowkey)) .addColumn(Bytes.toBytes(family), Bytes.toBytes(col), now, Bytes.toBytes("val1"))); - Configuration conf = UTIL.getConfiguration(); - ThriftMetrics metrics = getMetrics(conf); - ThriftHBaseServiceHandler hbaseHandler = - new ThriftHBaseServiceHandler(UTIL.getConfiguration(), - UserProvider.instantiate(UTIL.getConfiguration())); - Hbase.Iface handler = HbaseHandlerMetricsProxy.newInstance(hbaseHandler, metrics, conf); + Configuration conf = UTIL.getConfiguration(); + ThriftMetrics metrics = getMetrics(conf); + ThriftHBaseServiceHandler hbaseHandler = + new ThriftHBaseServiceHandler(UTIL.getConfiguration(), UserProvider.instantiate(UTIL.getConfiguration())); + Hbase.Iface handler = HbaseHandlerMetricsProxy.newInstance(hbaseHandler, metrics, conf); - ByteBuffer tTableName = asByteBuffer(tableName.getNameAsString()); + ByteBuffer tTableName = asByteBuffer(tableName.getNameAsString()); - // check metrics increment with a successful get - long preGetCounter = metricsHelper.checkCounterExists("getRow_num_ops", metrics.getSource()) ? + // check metrics increment with a successful get + long preGetCounter = metricsHelper.checkCounterExists("getRow_num_ops", metrics.getSource()) ? metricsHelper.getCounter("getRow_num_ops", metrics.getSource()) : 0; - List tRowResult = handler.getRow(tTableName, asByteBuffer(rowkey), null); - assertEquals(1, tRowResult.size()); - TRowResult tResult = tRowResult.get(0); + List tRowResult = handler.getRow(tTableName, asByteBuffer(rowkey), null); + assertEquals(1, tRowResult.size()); + TRowResult tResult = tRowResult.get(0); - TCell expectedColumnValue = new TCell(asByteBuffer("val1"), now); + TCell expectedColumnValue = new TCell(asByteBuffer("val1"), now); - assertArrayEquals(Bytes.toBytes(rowkey), tResult.getRow()); - Collection returnedColumnValues = tResult.getColumns().values(); - assertEquals(1, returnedColumnValues.size()); - assertEquals(expectedColumnValue, returnedColumnValues.iterator().next()); + assertArrayEquals(Bytes.toBytes(rowkey), tResult.getRow()); + Collection returnedColumnValues = tResult.getColumns().values(); + assertEquals(1, returnedColumnValues.size()); + assertEquals(expectedColumnValue, returnedColumnValues.iterator().next()); - metricsHelper.assertCounter("getRow_num_ops", preGetCounter + 1, metrics.getSource()); + metricsHelper.assertCounter("getRow_num_ops", preGetCounter + 1, metrics.getSource()); - // check metrics increment when the get throws each exception type - for (ErrorThrowingGetObserver.ErrorType type : ErrorThrowingGetObserver.ErrorType.values()) { - testExceptionType(handler, metrics, tTableName, rowkey, type); + // check metrics increment when the get throws each exception type + for (ErrorThrowingGetObserver.ErrorType type : ErrorThrowingGetObserver.ErrorType.values()) { + testExceptionType(handler, metrics, tTableName, rowkey, type); + } + } finally { + UTIL.deleteTable(tableName); } }