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 2015/09/01 22:00:38 UTC
hbase git commit: HBASE-14332 Show the table state when we encounter
exception while disabling / enabling table (Nick Han)
Repository: hbase
Updated Branches:
refs/heads/master 4f410e6bd -> f792ede46
HBASE-14332 Show the table state when we encounter exception while disabling / enabling table (Nick Han)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/f792ede4
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/f792ede4
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/f792ede4
Branch: refs/heads/master
Commit: f792ede466eddfbcdd67b8490296bf7712f39119
Parents: 4f410e6
Author: tedyu <yu...@gmail.com>
Authored: Tue Sep 1 13:00:28 2015 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Tue Sep 1 13:00:28 2015 -0700
----------------------------------------------------------------------
.../apache/hadoop/hbase/master/TableStateManager.java | 7 ++++---
.../hbase/master/handler/DisableTableHandler.java | 12 +++++++-----
.../hadoop/hbase/master/handler/EnableTableHandler.java | 12 +++++++-----
.../hbase/master/procedure/DisableTableProcedure.java | 8 +++++---
.../hbase/master/procedure/EnableTableProcedure.java | 8 +++++---
5 files changed, 28 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/f792ede4/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java
index c9daa0d..12db91e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/TableStateManager.java
@@ -77,9 +77,10 @@ public class TableStateManager {
* @param tableName table to change state for
* @param newState new state
* @param states states to check against
+ * @return null if succeed or table state if failed
* @throws IOException
*/
- public boolean setTableStateIfInStates(TableName tableName,
+ public TableState.State setTableStateIfInStates(TableName tableName,
TableState.State newState,
TableState.State... states)
throws IOException {
@@ -91,9 +92,9 @@ public class TableStateManager {
}
if (currentState.inStates(states)) {
udpateMetaState(tableName, newState);
- return true;
+ return null;
} else {
- return false;
+ return currentState.getState();
}
} finally {
lock.writeLock().unlock();
http://git-wip-us.apache.org/repos/asf/hbase/blob/f792ede4/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java
index ee77419..d34f25e 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/DisableTableHandler.java
@@ -90,11 +90,13 @@ public class DisableTableHandler extends EventHandler {
// DISABLED or ENABLED.
//TODO: reevaluate this since we have table locks now
if (!skipTableStateCheck) {
- if (!this.assignmentManager.getTableStateManager().setTableStateIfInStates(
- this.tableName, TableState.State.DISABLING,
- TableState.State.ENABLED)) {
- LOG.info("Table " + tableName + " isn't enabled; skipping disable");
- throw new TableNotEnabledException(this.tableName);
+ TableState.State state = this.assignmentManager.
+ getTableStateManager().setTableStateIfInStates(
+ this.tableName, TableState.State.DISABLING,
+ TableState.State.ENABLED);
+ if (state!=null) {
+ LOG.info("Table " + tableName + " isn't enabled;is "+state.name()+"; skipping disable");
+ throw new TableNotEnabledException(this.tableName+" state is "+state.name());
}
}
success = true;
http://git-wip-us.apache.org/repos/asf/hbase/blob/f792ede4/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
index c7145fd..fd3d4c7 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/EnableTableHandler.java
@@ -100,11 +100,13 @@ public class EnableTableHandler extends EventHandler {
// After that, no other requests can be accepted until the table reaches
// DISABLED or ENABLED.
if (!skipTableStateCheck) {
- if (!this.assignmentManager.getTableStateManager().setTableStateIfInStates(
- this.tableName, TableState.State.ENABLING,
- TableState.State.DISABLED)) {
- LOG.info("Table " + tableName + " isn't disabled; skipping enable");
- throw new TableNotDisabledException(this.tableName);
+ TableState.State state = this.assignmentManager
+ .getTableStateManager().setTableStateIfInStates(
+ this.tableName, TableState.State.ENABLING,
+ TableState.State.DISABLED);
+ if (state!=null) {
+ LOG.info("Table " + tableName + " isn't disabled;is "+state.name()+"; skipping enable");
+ throw new TableNotDisabledException(this.tableName+" state is "+state.name());
}
}
success = true;
http://git-wip-us.apache.org/repos/asf/hbase/blob/f792ede4/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
index de79a91..351751e3 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/DisableTableProcedure.java
@@ -294,9 +294,11 @@ public class DisableTableProcedure
// set the state later on). A quick state check should be enough for us to move forward.
TableStateManager tsm =
env.getMasterServices().getAssignmentManager().getTableStateManager();
- if (!tsm.getTableState(tableName).equals(TableState.State.ENABLED)) {
- LOG.info("Table " + tableName + " isn't enabled; skipping disable");
- setFailure("master-disable-table", new TableNotEnabledException(tableName));
+ TableState.State state = tsm.getTableState(tableName);
+ if(!state.equals(TableState.State.ENABLED)){
+ LOG.info("Table " + tableName + " isn't enabled;is "+state.name()+"; skipping disable");
+ setFailure("master-disable-table", new TableNotEnabledException(
+ tableName+" state is "+state.name()));
canTableBeDisabled = false;
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/f792ede4/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
index 8474e85..ef13d07 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/procedure/EnableTableProcedure.java
@@ -314,9 +314,11 @@ public class EnableTableProcedure
// was implemented. With table lock, there is no need to set the state here (it will
// set the state later on). A quick state check should be enough for us to move forward.
TableStateManager tsm = env.getMasterServices().getAssignmentManager().getTableStateManager();
- if (!tsm.getTableState(tableName).equals(TableState.State.DISABLED)) {
- LOG.info("Table " + tableName + " isn't disabled; skipping enable");
- setFailure("master-enable-table", new TableNotDisabledException(this.tableName));
+ TableState.State state = tsm.getTableState(tableName);
+ if(!state.equals(TableState.State.DISABLED)){
+ LOG.info("Table " + tableName + " isn't disabled;is "+state.name()+"; skipping enable");
+ setFailure("master-enable-table", new TableNotDisabledException(
+ this.tableName+" state is "+state.name()));
canTableBeEnabled = false;
}
}