hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mbau...@apache.org
Subject svn commit: r1333193 - /hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
Date Wed, 02 May 2012 20:51:13 GMT
Author: mbautin
Date: Wed May  2 20:51:12 2012
New Revision: 1333193

URL: http://svn.apache.org/viewvc?rev=1333193&view=rev
Log:
[master] Misleading exceptions for table creation

Author: liyintang

Summary:
There is an issue in puma cluster that user cannot create table since there is NPE in the
block placement policy. However, the user keep getting the misleading exceptions, table existing
exceptions.

The reason is because there is a retry loop for table creation and once the master retries
the table creation operation, it will naturally throw a table existing exception.

In current code base, even though there is a retry logic, master usually can create the table
in one pass. Otherwise, the user will get the table existing exception. Also it didn't make
sense to retry the table creation operation without any cleanup. I feel we can just simply
remove the retry logic here.

Test Plan: running all the unit tests

Reviewers: kannan, mbautin

Reviewed By: kannan

CC: hbase-eng@

Differential Revision: https://phabricator.fb.com/D455459

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1333193&r1=1333192&r2=1333193&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Wed May
 2 20:51:12 2012
@@ -1307,27 +1307,23 @@ public class HMaster extends Thread impl
         startKey = endKey;
       }
     }
-    for (int tries = 0; tries < this.numRetries; tries++) {
-      try {
-        // We can not create a table unless meta regions have already been
-        // assigned and scanned.
-        if (!this.regionManager.areAllMetaRegionsOnline()) {
-          throw new NotAllMetaRegionsOnlineException();
-        }
-        if (!this.serverManager.hasEnoughRegionServers()) {
-          throw new IOException("not enough servers to create table yet");
-        }
-        createTable(newRegions);
-        LOG.info("created table " + desc.getNameAsString());
-        break;
-      } catch (TableExistsException e) {
-        throw e;
-      } catch (IOException e) {
-        if (tries == this.numRetries - 1) {
-          throw RemoteExceptionHandler.checkIOException(e);
-        }
-        this.sleeper.sleep();
-      }
+    try {
+      // We can not create a table unless meta regions have already been
+      // assigned and scanned.
+      if (!this.regionManager.areAllMetaRegionsOnline()) {
+        throw new NotAllMetaRegionsOnlineException();
+      }
+      if (!this.serverManager.hasEnoughRegionServers()) {
+        throw new IOException("not enough servers to create table yet");
+      }
+      createTable(newRegions);
+      LOG.info("Succeeded in creating table " + desc.getNameAsString());
+    } catch (TableExistsException e) {
+      throw e;
+    } catch (IOException e) {
+      LOG.error("Cannot create table " + desc.getNameAsString() + 
+				" because of " + e.toString());
+      throw RemoteExceptionHandler.checkIOException(e);
     }
   }
 



Mime
View raw message