diff --git hbase-server/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java hbase-server/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java index ab2ab19..a58fb3e 100644 --- hbase-server/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java +++ hbase-server/src/main/java/org/apache/hadoop/hbase/client/HConnectionManager.java @@ -927,6 +927,10 @@ public class HConnectionManager { "table name cannot be null or zero length"); } + if (isTableDisabled(tableName)) { + throw new DoNotRetryIOException(Bytes.toString(tableName) + " is disabled."); + } + if (Bytes.equals(tableName, HConstants.ROOT_TABLE_NAME)) { ZooKeeperKeepAliveConnection zkw = getKeepAliveZooKeeperWatcher(); try { diff --git hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java index 0fa5ae8..8ff4aaf 100644 --- hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java +++ hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java @@ -240,6 +240,8 @@ public class TestAdmin { boolean ok = false; try { ht.get(get); + } catch (DoNotRetryIOException e) { + ok = true; } catch (NotServingRegionException e) { ok = true; } catch (RetriesExhaustedException e) { @@ -288,6 +290,8 @@ public class TestAdmin { try { ht1.get(get); ht2.get(get); + } catch (DoNotRetryIOException e) { + ok = true; } catch (NotServingRegionException e) { ok = true; } catch (RetriesExhaustedException e) { @@ -1016,7 +1020,10 @@ public class TestAdmin { new HTable(TEST_UTIL.getConfiguration(), tableName); } catch (org.apache.hadoop.hbase.client.RegionOfflineException e) { // Expected + } catch (DoNotRetryIOException e) { + //expected } + this.admin.addColumn(tableName, new HColumnDescriptor("col2")); this.admin.enableTable(tableName); try {