From c4a8926920848181550ae58c04f6edb07d0ab45e Mon Sep 17 00:00:00 2001 From: chenheng Date: Thu, 3 Dec 2015 16:49:40 +0800 Subject: [PATCH] HBASE-14915 Hanging test: org.apache.hadoop.hbase.mapreduce.TestImportExport --- .../hadoop/hbase/client/TestMultiParallel.java | 39 +++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMultiParallel.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMultiParallel.java index 0469bca..c764129 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMultiParallel.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMultiParallel.java @@ -669,13 +669,44 @@ public class TestMultiParallel { private void validateLoadedData(Table table) throws IOException { // get the data back and validate that it is correct LOG.info("Validating data on " + table); + List gets = new ArrayList(); for (byte[] k : KEYS) { Get get = new Get(k); get.addColumn(BYTES_FAMILY, QUALIFIER); - Result r = table.get(get); - Assert.assertTrue(r.containsColumn(BYTES_FAMILY, QUALIFIER)); - Assert.assertEquals(0, Bytes.compareTo(VALUE, r - .getValue(BYTES_FAMILY, QUALIFIER))); + gets.add(get); + } + int retryNum = 10; + Result[] results = null; + do { + results = table.get(gets); + boolean finished = true; + for (Result result : results) { + if (result.isEmpty()) { + finished = false; + break; + } + } + if (finished) { + break; + } + try { + Thread.sleep(10); + } catch (InterruptedException e) { + } + retryNum--; + } while (retryNum > 0); + + if (retryNum == 0) { + fail("Timeout for validate data"); + } else { + if (results != null) { + for (Result r : results) { + Assert.assertTrue(r.containsColumn(BYTES_FAMILY, QUALIFIER)); + Assert.assertEquals(0, Bytes.compareTo(VALUE, r + .getValue(BYTES_FAMILY, QUALIFIER))); + } + LOG.info("Validating data on " + table + " successfully!"); + } } } -- 1.9.3 (Apple Git-50)