From 52a52f0f11451f09abe9a84d37580f2b0ac3e74d Mon Sep 17 00:00:00 2001 From: Sean Busbey Date: Fri, 1 Aug 2014 00:40:41 -0500 Subject: [PATCH] HBASE-11627 guard against divide by zero in RegionSplitter logging. Adds a test for noop rolling splits that fails prior to the addition of the guard. --- .../main/java/org/apache/hadoop/hbase/util/RegionSplitter.java | 6 ++++-- .../java/org/apache/hadoop/hbase/util/TestRegionSplitter.java | 7 +++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java index 8a2ffaa..f881d29 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java @@ -584,8 +584,10 @@ public class RegionSplitter { LOG.debug("TOTAL TIME = " + org.apache.hadoop.util.StringUtils.formatTime(tDiff)); LOG.debug("Splits = " + splitCount); - LOG.debug("Avg Time / Split = " - + org.apache.hadoop.util.StringUtils.formatTime(tDiff / splitCount)); + if (0 < splitCount) { + LOG.debug("Avg Time / Split = " + + org.apache.hadoop.util.StringUtils.formatTime(tDiff / splitCount)); + } splitOut.close(); if (table != null){ diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java index 407be0d..878e109 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestRegionSplitter.java @@ -282,6 +282,13 @@ public class TestRegionSplitter { verifyBounds(expectedBounds, tableName); } + @Test + public void noopRollingSplit() throws Exception { + final List expectedBounds = new ArrayList(); + expectedBounds.add(ArrayUtils.EMPTY_BYTE_ARRAY); + rollingSplitAndVerify(TestRegionSplitter.class.getSimpleName(), "UniformSplit", expectedBounds); + } + private void rollingSplitAndVerify(String tableName, String splitClass, List expectedBounds) throws Exception { final Configuration conf = UTIL.getConfiguration(); -- 1.7.10.2 (Apple Git-33)