Author: stack
Date: Wed Jul 29 23:07:48 2009
New Revision: 799117

URL: http://svn.apache.org/viewvc?rev=799117&view=rev
Log:
HBASE-1534 Got ZooKeeper event, state: Disconnected on HRS and then NPE on 
reinit

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java
    
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Jul 29 23:07:48 2009
@@ -304,6 +304,8 @@
                data to be used
    HBASE-1573  Holes in master state change; updated startcode and server
                go into .META. but catalog scanner just got old values (redux)
+   HBASE-1534  Got ZooKeeper event, state: Disconnected on HRS and then NPE
+               on reinit
 
   IMPROVEMENTS
    HBASE-1089  Add count of regions on filesystem to master UI; add percentage

Modified: 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
--- 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java 
(original)
+++ 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/master/RegionManager.java 
Wed Jul 29 23:07:48 2009
@@ -240,10 +240,9 @@
 
     int nRegionsToAssign = regionsToAssign.size();
     int nregions = regionsPerServer(nRegionsToAssign, thisServersLoad);
-    LOG.debug("multi assing for " + info + ": nregions to assign: "
-        + nRegionsToAssign
-        +" and nregions: " + nregions
-        + " metaAssign: " + isMetaAssign);
+    LOG.debug("Assigning for " + info + ": total nregions to assign=" +
+      nRegionsToAssign + ", nregions to reach balance=" + nregions +
+      ", isMetaAssign=" + isMetaAssign);
     nRegionsToAssign -= nregions;
     if (nRegionsToAssign > 0 || isMetaAssign) {
       // We still have more regions to assign. See how many we can assign

Modified: 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
--- 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 (original)
+++ 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 Wed Jul 29 23:07:48 2009
@@ -417,7 +417,17 @@
     regionServerThread = Thread.currentThread();
     boolean quiesceRequested = false;
     try {
-      init(reportForDuty());
+      MapWritable w = null;
+      while (!stopRequested.get()) {
+        w = reportForDuty();
+        if (w != null) {
+          init(w);
+          break;
+        }
+        sleeper.sleep();
+        LOG.warn("No response from master on reportForDuty. Sleeping and " +
+          "then trying again.");
+      }
       long lastMsg = 0;
       // Now ask master what it wants us to do and tell it what we have done
       for (int tries = 0; !stopRequested.get() && isHealthy();) {

Modified: 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java?rev=799117&r1=799116&r2=799117&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java 
(original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Store.java 
Wed Jul 29 23:07:48 2009
@@ -295,6 +295,7 @@
     // TODO: This could grow large and blow heap out.  Need to get it into
     // general memory usage accounting.
     long maxSeqIdInLog = -1;
+    long firstSeqIdInLog = -1;
     // TODO: Move this memstoring over into MemStore.
     KeyValueSkipListSet reconstructedCache =
       new KeyValueSkipListSet(this.comparator);
@@ -309,6 +310,9 @@
       int reportInterval =
         this.conf.getInt("hbase.hstore.report.interval.edits", 2000);
       while (logReader.next(key, val)) {
+        if (firstSeqIdInLog == -1) {
+          firstSeqIdInLog = key.getLogSeqNum();
+        }
         maxSeqIdInLog = Math.max(maxSeqIdInLog, key.getLogSeqNum());
         if (key.getLogSeqNum() <= maxSeqID) {
           skippedEdits++;
@@ -335,7 +339,9 @@
       }
       if (LOG.isDebugEnabled()) {
         LOG.debug("Applied " + editsCount + ", skipped " + skippedEdits +
-          " because sequence id <= " + maxSeqID);
+          "; store maxSeqID=" + maxSeqID +
+          ", firstSeqIdInLog=" + firstSeqIdInLog +
+          ", maxSeqIdInLog=" + maxSeqIdInLog);
       }
     } finally {
       logReader.close();


Reply via email to