From ab7ecf199845c9583a61ec0a908ba4ca999e8104 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Mon, 3 Jun 2019 13:45:14 +0900 Subject: [PATCH] HBASE-22529 Add sanity check for in-memory compaction policy --- .../main/java/org/apache/hadoop/hbase/master/HMaster.java | 7 +++++++ .../hadoop/hbase/client/TestIllegalTableDescriptor.java | 5 +++++ 2 files changed, 12 insertions(+) diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java index 4f5edf7a3e..b6a6efae43 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java @@ -2244,6 +2244,13 @@ public class HMaster extends HRegionServer implements MasterServices { warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null); } + // check in-memory compaction + try { + hcd.getInMemoryCompaction(); + } catch (IllegalArgumentException e) { + warnOrThrowExceptionForFailure(logWarn, CONF_KEY, e.getMessage(), e); + } + // TODO: should we check coprocessors and encryption ? } } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.java index 0bb2b3f93e..6ebb286b1f 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestIllegalTableDescriptor.java @@ -152,6 +152,11 @@ public class TestIllegalTableDescriptor { hcd.setScope(0); checkTableIsLegal(htd); + hcd.setValue(ColumnFamilyDescriptorBuilder.IN_MEMORY_COMPACTION, "INVALID"); + checkTableIsIllegal(htd); + hcd.setValue(ColumnFamilyDescriptorBuilder.IN_MEMORY_COMPACTION, "NONE"); + checkTableIsLegal(htd); + try { hcd.setDFSReplication((short) -1); fail("Illegal value for setDFSReplication did not throw"); -- 2.19.2