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;
       }
     }