You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jd...@apache.org on 2011/03/22 23:20:53 UTC

svn commit: r1084378 - in /hbase/branches/0.90: CHANGES.txt src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java

Author: jdcryans
Date: Tue Mar 22 22:20:53 2011
New Revision: 1084378

URL: http://svn.apache.org/viewvc?rev=1084378&view=rev
Log:
HBASE-3668  CatalogTracker.waitForMeta can wait forever and totally stall a RS

Modified:
    hbase/branches/0.90/CHANGES.txt
    hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java

Modified: hbase/branches/0.90/CHANGES.txt
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1084378&r1=1084377&r2=1084378&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Tue Mar 22 22:20:53 2011
@@ -48,6 +48,7 @@ Release 0.90.2 - Unreleased
                holding lock on RIT; a big no-no (Ted Yu via Stack)
    HBASE-3575  Update rename table script
    HBASE-3687  Bulk assign on startup should handle a ServerNotRunningException
+   HBASE-3668  CatalogTracker.waitForMeta can wait forever and totally stall a RS
 
   IMPROVEMENTS
    HBASE-3542  MultiGet methods in Thrift

Modified: hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java?rev=1084378&r1=1084377&r2=1084378&view=diff
==============================================================================
--- hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java (original)
+++ hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/catalog/CatalogTracker.java Tue Mar 22 22:20:53 2011
@@ -320,12 +320,12 @@ public class CatalogTracker {
   throws InterruptedException, IOException, NotAllMetaRegionsOnlineException {
     long stop = System.currentTimeMillis() + timeout;
     synchronized (metaAvailable) {
-      if (getMetaServerConnection(true) != null) {
-        return metaLocation;
-      }
       while(!stopped && !metaAvailable.get() &&
           (timeout == 0 || System.currentTimeMillis() < stop)) {
-        metaAvailable.wait(timeout);
+        if (getMetaServerConnection(true) != null) {
+          return metaLocation;
+        }
+        metaAvailable.wait(timeout == 0 ? 50 : timeout);
       }
       if (getMetaServerConnection(true) == null) {
         throw new NotAllMetaRegionsOnlineException(