Author: mbautin Date: Tue Feb 7 20:37:20 2012 New Revision: 1241606 URL: http://svn.apache.org/viewvc?rev=1241606&view=rev Log: [master] Asynchronously table creation shall ignore the socket time out exception
Summary: HBaseAdmin creates table in an asynchronous way and then verify all the regions come online. However, the asynchronous creation may get socket time out exception, which is sopposed to be ignored. The asynchronous creation would not except the master will return in limited time period. Marked as master since this problem is very different in the apache trunk. The fix is totally different. Test Plan: Tested with ods client Reviewers: kannan Reviewed By: kannan CC: hbase-eng@lists Differential Revision: https://phabricator.fb.com/D400671 Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=1241606&r1=1241605&r2=1241606&view=diff ============================================================================== --- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original) +++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Tue Feb 7 20:37:20 2012 @@ -19,16 +19,17 @@ */ package org.apache.hadoop.hbase.client; -import java.io.InterruptedIOException; import java.io.IOException; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.Arrays; +import java.io.InterruptedIOException; +import java.net.SocketTimeoutException; import java.util.ArrayList; +import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.NavigableMap; import java.util.Set; +import java.util.concurrent.atomic.AtomicInteger; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -325,6 +326,8 @@ public class HBaseAdmin { this.master.createTable(desc, splitKeys); } catch (RemoteException e) { throw RemoteExceptionHandler.decodeRemoteException(e); + } catch (SocketTimeoutException ste) { + LOG.warn("Creating " + desc.getNameAsString() + " took too long", ste); } }
