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;