You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ji...@apache.org on 2008/09/06 02:50:58 UTC

svn commit: r692596 - in /hadoop/hbase/trunk: ./ src/java/org/apache/hadoop/hbase/ src/java/org/apache/hadoop/hbase/client/ src/test/org/apache/hadoop/hbase/ src/test/org/apache/hadoop/hbase/util/

Author: jimk
Date: Fri Sep  5 17:50:58 2008
New Revision: 692596

URL: http://svn.apache.org/viewvc?rev=692596&view=rev
Log:
HBASE-874  deleting a table kills client rpc; no subsequent communication if shell or thrift server, etc. (Jonathan Gray via Jim Kellerman)

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HMerge.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HConnectionManager.java
    hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/HBaseClusterTestCase.java
    hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/DisabledTestMetaUtils.java
    hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMigrate.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=692596&r1=692595&r2=692596&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Fri Sep  5 17:50:58 2008
@@ -76,6 +76,8 @@
               HRegionServer (Jean-Daniel Cryans via Jim Kellerman)
    HBASE-840  More options on the row query in REST interface
               (Sishen Freecity via Stack)
+   HBASE-874  deleting a table kills client rpc; no subsequent communication if
+              shell or thrift server, etc. (Jonathan Gray via Jim Kellerman)
 
   NEW FEATURES
    HBASE-787  Postgresql to HBase table replication example (Tim Sell via Stack)

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HMerge.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HMerge.java?rev=692596&r1=692595&r2=692596&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HMerge.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/HMerge.java Fri Sep  5 17:50:58 2008
@@ -76,7 +76,7 @@
   throws IOException {
     HConnection connection = HConnectionManager.getConnection(conf);
     boolean masterIsRunning = connection.isMasterRunning();
-    HConnectionManager.deleteConnectionInfo(conf);
+    HConnectionManager.deleteConnectionInfo(conf, false);
     if (Bytes.equals(tableName, META_TABLE_NAME)) {
       if (masterIsRunning) {
         throw new IllegalStateException(

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HBaseAdmin.java?rev=692596&r1=692595&r2=692596&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HBaseAdmin.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HBaseAdmin.java Fri Sep  5 17:50:58 2008
@@ -267,7 +267,7 @@
       }
     }
     // Delete cached information to prevent clients from using old locations
-    HConnectionManager.deleteConnectionInfo(conf);
+    HConnectionManager.deleteConnectionInfo(conf, false);
     LOG.info("Deleted " + Bytes.toString(tableName));
   }
 

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HConnectionManager.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HConnectionManager.java?rev=692596&r1=692595&r2=692596&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HConnectionManager.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/client/HConnectionManager.java Fri Sep  5 17:50:58 2008
@@ -95,29 +95,18 @@
   /**
    * Delete connection information for the instance specified by the configuration
    * @param conf
+   * @param stopProxy
    */
-  public static void deleteConnectionInfo(HBaseConfiguration conf) {
+  public static void deleteConnectionInfo(HBaseConfiguration conf,
+      boolean stopProxy) {
     synchronized (HBASE_INSTANCES) {
       TableServers t = HBASE_INSTANCES.remove(conf.get(HBASE_DIR));
       if (t != null) {
-        t.close();
+        t.close(stopProxy);
       }
     }
   }
 
-  /**
-   * Clear the static map of connection info.
-   */
-  public static void deleteConnectionInfo() {
-    synchronized (HBASE_INSTANCES) {
-      for (TableServers t: HBASE_INSTANCES.values()) {
-        t.close();
-      }
-      HBASE_INSTANCES.clear();
-    }
-  }
-
-  
   /* Encapsulates finding the servers for an HBase instance */
   private static class TableServers implements HConnection, HConstants {
     private static final Log LOG = LogFactory.getLog(TableServers.class);
@@ -894,15 +883,19 @@
       return null;    
     }
 
-    void close() {
+    void close(boolean stopProxy) {
       if (master != null) {
-        HbaseRPC.stopProxy(master);
+        if (stopProxy) {
+          HbaseRPC.stopProxy(master);
+        }
         master = null;
         masterChecked = false;
       }
-      synchronized (servers) {
-        for (HRegionInterface i: servers.values()) {
-          HbaseRPC.stopProxy(i);
+      if (stopProxy) {
+        synchronized (servers) {
+          for (HRegionInterface i: servers.values()) {
+            HbaseRPC.stopProxy(i);
+          }
         }
       }
     }

Modified: hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/HBaseClusterTestCase.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/HBaseClusterTestCase.java?rev=692596&r1=692595&r2=692596&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/HBaseClusterTestCase.java (original)
+++ hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/HBaseClusterTestCase.java Fri Sep  5 17:50:58 2008
@@ -145,7 +145,7 @@
   protected void tearDown() throws Exception {
     super.tearDown();
     try {
-      HConnectionManager.deleteConnectionInfo(conf);
+      HConnectionManager.deleteConnectionInfo(conf, true);
       if (this.cluster != null) {
         try {
           this.cluster.shutdown();

Modified: hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/DisabledTestMetaUtils.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/DisabledTestMetaUtils.java?rev=692596&r1=692595&r2=692596&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/DisabledTestMetaUtils.java (original)
+++ hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/DisabledTestMetaUtils.java Fri Sep  5 17:50:58 2008
@@ -50,7 +50,7 @@
     utils.deleteColumn(editTable, Bytes.toBytes(oldColumn));
     utils.shutdown();
     // Delete again so we go get it all fresh.
-    HConnectionManager.deleteConnectionInfo();
+    HConnectionManager.deleteConnectionInfo(conf, false);
     // Now assert columns were added and deleted.
     this.cluster = new MiniHBaseCluster(this.conf, 1);
     // Now assert columns were added and deleted.

Modified: hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMigrate.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMigrate.java?rev=692596&r1=692595&r2=692596&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMigrate.java (original)
+++ hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/util/TestMigrate.java Fri Sep  5 17:50:58 2008
@@ -134,7 +134,7 @@
     // Delete any cached connections.  Need to do this because connection was
     // created earlier when no master was around.  The fact that there was no
     // master gets cached.  Need to delete so we go get master afresh.
-    HConnectionManager.deleteConnectionInfo();
+    HConnectionManager.deleteConnectionInfo(conf, false);
     
     LOG.info("Start a cluster against migrated FS");
     // Up number of retries.  Needed while cluster starts up. Its been set to 1
@@ -159,7 +159,7 @@
         "changes before opening a scanner");
       waitOnStartCodeChange(retries);
       // Delete again so we go get it all fresh.
-      HConnectionManager.deleteConnectionInfo();
+      HConnectionManager.deleteConnectionInfo(conf, false);
       HTable t = new HTable(this.conf, TABLENAME);
       int count = 0;
       LOG.info("OPENING SCANNER");
@@ -179,7 +179,7 @@
         s.close();
       }
     } finally {
-      HConnectionManager.deleteConnectionInfo();
+      HConnectionManager.deleteConnectionInfo(conf, false);
       cluster.shutdown();
     }
   }