You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2016/08/17 14:58:15 UTC

hbase git commit: HBASE-16419 check REPLICATION_SCOPE's value more stringently (Guangxu Cheng)

Repository: hbase
Updated Branches:
  refs/heads/master d5080e82f -> 233ca65b8


HBASE-16419 check REPLICATION_SCOPE's value more stringently (Guangxu Cheng)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/233ca65b
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/233ca65b
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/233ca65b

Branch: refs/heads/master
Commit: 233ca65b8f1c180f9099c0f35d6cc44fd43d5131
Parents: d5080e8
Author: tedyu <yu...@gmail.com>
Authored: Wed Aug 17 07:58:06 2016 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Wed Aug 17 07:58:06 2016 -0700

----------------------------------------------------------------------
 .../org/apache/hadoop/hbase/master/HMaster.java | 21 +++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/233ca65b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
----------------------------------------------------------------------
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 2022c5e..97ad394 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
@@ -131,6 +131,7 @@ import org.apache.hadoop.hbase.procedure2.ProcedureExecutor;
 import org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore;
 import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetRegionInfoResponse.CompactionState;
 import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.RegionServerInfo;
+import org.apache.hadoop.hbase.protobuf.generated.WALProtos;
 import org.apache.hadoop.hbase.quotas.MasterQuotaManager;
 import org.apache.hadoop.hbase.regionserver.DefaultStoreEngine;
 import org.apache.hadoop.hbase.regionserver.HRegionServer;
@@ -1581,11 +1582,7 @@ public class HMaster extends HRegionServer implements MasterServices {
       }
 
       // check replication scope
-      if (hcd.getScope() < 0) {
-        String message = "Replication scope for column family "
-          + hcd.getNameAsString() + "  must be positive.";
-        warnOrThrowExceptionForFailure(logWarn, CONF_KEY, message, null);
-      }
+      checkReplicationScope(hcd);
 
       // check data replication factor, it can be 0(default value) when user has not explicitly
       // set the value, in this case we use default replication factor set in the file system.
@@ -1599,6 +1596,18 @@ public class HMaster extends HRegionServer implements MasterServices {
     }
   }
 
+  private void checkReplicationScope(HColumnDescriptor hcd) throws IOException{
+    // check replication scope
+    WALProtos.ScopeType scop = WALProtos.ScopeType.valueOf(hcd.getScope());
+    if (scop == null) {
+      String message = "Replication scope for column family "
+          + hcd.getNameAsString() + " is " + hcd.getScope() + " which is invalid.";
+
+      LOG.error(message);
+      throw new DoNotRetryIOException(message);
+    }
+  }
+
   private void checkCompactionPolicy(Configuration conf, HTableDescriptor htd)
       throws IOException {
     // FIFO compaction has some requirements
@@ -1833,6 +1842,7 @@ public class HMaster extends HRegionServer implements MasterServices {
     checkInitialized();
     checkCompression(columnDescriptor);
     checkEncryption(conf, columnDescriptor);
+    checkReplicationScope(columnDescriptor);
     if (cpHost != null) {
       if (cpHost.preAddColumn(tableName, columnDescriptor)) {
         return -1;
@@ -1860,6 +1870,7 @@ public class HMaster extends HRegionServer implements MasterServices {
     checkInitialized();
     checkCompression(descriptor);
     checkEncryption(conf, descriptor);
+    checkReplicationScope(descriptor);
     if (cpHost != null) {
       if (cpHost.preModifyColumn(tableName, descriptor)) {
         return -1;