hbase-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From st...@apache.org
Subject svn commit: r691710 - in /hadoop/hbase: branches/0.2/CHANGES.txt branches/0.2/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java trunk/CHANGES.txt trunk/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java
Date Wed, 03 Sep 2008 18:17:19 GMT
Author: stack
Date: Wed Sep  3 11:17:19 2008
New Revision: 691710

URL: http://svn.apache.org/viewvc?rev=691710&view=rev
Log:
HBASE-864 Deadlock in regionserver

Modified:
    hadoop/hbase/branches/0.2/CHANGES.txt
    hadoop/hbase/branches/0.2/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java

Modified: hadoop/hbase/branches/0.2/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.2/CHANGES.txt?rev=691710&r1=691709&r2=691710&view=diff
==============================================================================
--- hadoop/hbase/branches/0.2/CHANGES.txt (original)
+++ hadoop/hbase/branches/0.2/CHANGES.txt Wed Sep  3 11:17:19 2008
@@ -53,6 +53,7 @@
                (Billy Pearson via Stack)
    HBASE-832   Problem with row keys beginnig with characters < than ',' and
                the region location cache
+   HBASE-864   Deadlock in regionserver
 
   IMPROVEMENTS
    HBASE-801  When a table haven't disable, shell could response in a "user

Modified: hadoop/hbase/branches/0.2/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.2/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java?rev=691710&r1=691709&r2=691710&view=diff
==============================================================================
--- hadoop/hbase/branches/0.2/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java (original)
+++ hadoop/hbase/branches/0.2/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java Wed
Sep  3 11:17:19 2008
@@ -166,33 +166,34 @@
         flushQueue.remove(region);
       }
       lock.lock();
-      try {
-        // See comment above for removeFromQueue on why we do not
-        // compact if removeFromQueue is true. Note that region.flushCache()
-        // only returns true if a flush is done and if a compaction is needed.
-        if (region.flushcache() && !removeFromQueue) {
-          server.compactSplitThread.compactionRequested(region);
-        }
-      } catch (DroppedSnapshotException ex) {
-        // Cache flush can fail in a few places.  If it fails in a critical
-        // section, we get a DroppedSnapshotException and a replay of hlog
-        // is required. Currently the only way to do this is a restart of
-        // the server.  Abort because hdfs is probably bad (HBASE-644 is a case
-        // where hdfs was bad but passed the hdfs check).
-        LOG.fatal("Replay of hlog required. Forcing server restart", ex);
-        server.abort();
+    }
+    try {
+      // See comment above for removeFromQueue on why we do not
+      // compact if removeFromQueue is true. Note that region.flushCache()
+      // only returns true if a flush is done and if a compaction is needed.
+      if (region.flushcache() && !removeFromQueue) {
+        server.compactSplitThread.compactionRequested(region);
+      }
+    } catch (DroppedSnapshotException ex) {
+      // Cache flush can fail in a few places. If it fails in a critical
+      // section, we get a DroppedSnapshotException and a replay of hlog
+      // is required. Currently the only way to do this is a restart of
+      // the server. Abort because hdfs is probably bad (HBASE-644 is a case
+      // where hdfs was bad but passed the hdfs check).
+      LOG.fatal("Replay of hlog required. Forcing server restart", ex);
+      server.abort();
+      return false;
+    } catch (IOException ex) {
+      LOG.error("Cache flush failed"
+          + (region != null ? (" for region " + region.getRegionName()) : ""),
+          RemoteExceptionHandler.checkIOException(ex));
+      if (!server.checkFileSystem()) {
         return false;
-      } catch (IOException ex) {
-        LOG.error("Cache flush failed" +
-            (region != null ? (" for region " + region.getRegionName()) : ""),
-            RemoteExceptionHandler.checkIOException(ex));
-        if (!server.checkFileSystem()) {
-          return false;
-        }
-      } finally {
-        lock.unlock();
       }
+    } finally {
+      lock.unlock();
     }
+
     return true;
   }
   

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=691710&r1=691709&r2=691710&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Wed Sep  3 11:17:19 2008
@@ -55,6 +55,7 @@
                (Billy Pearson via Stack)
    HBASE-832   Problem with row keys beginnig with characters < than ',' and
                the region location cache
+   HBASE-864   Deadlock in regionserver
 
   IMPROVEMENTS
    HBASE-801  When a table haven't disable, shell could response in a "user

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java?rev=691710&r1=691709&r2=691710&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/Flusher.java Wed Sep
 3 11:17:19 2008
@@ -166,33 +166,34 @@
         flushQueue.remove(region);
       }
       lock.lock();
-      try {
-        // See comment above for removeFromQueue on why we do not
-        // compact if removeFromQueue is true. Note that region.flushCache()
-        // only returns true if a flush is done and if a compaction is needed.
-        if (region.flushcache() && !removeFromQueue) {
-          server.compactSplitThread.compactionRequested(region);
-        }
-      } catch (DroppedSnapshotException ex) {
-        // Cache flush can fail in a few places.  If it fails in a critical
-        // section, we get a DroppedSnapshotException and a replay of hlog
-        // is required. Currently the only way to do this is a restart of
-        // the server.  Abort because hdfs is probably bad (HBASE-644 is a case
-        // where hdfs was bad but passed the hdfs check).
-        LOG.fatal("Replay of hlog required. Forcing server restart", ex);
-        server.abort();
+    }
+    try {
+      // See comment above for removeFromQueue on why we do not
+      // compact if removeFromQueue is true. Note that region.flushCache()
+      // only returns true if a flush is done and if a compaction is needed.
+      if (region.flushcache() && !removeFromQueue) {
+        server.compactSplitThread.compactionRequested(region);
+      }
+    } catch (DroppedSnapshotException ex) {
+      // Cache flush can fail in a few places. If it fails in a critical
+      // section, we get a DroppedSnapshotException and a replay of hlog
+      // is required. Currently the only way to do this is a restart of
+      // the server. Abort because hdfs is probably bad (HBASE-644 is a case
+      // where hdfs was bad but passed the hdfs check).
+      LOG.fatal("Replay of hlog required. Forcing server restart", ex);
+      server.abort();
+      return false;
+    } catch (IOException ex) {
+      LOG.error("Cache flush failed"
+          + (region != null ? (" for region " + region.getRegionName()) : ""),
+          RemoteExceptionHandler.checkIOException(ex));
+      if (!server.checkFileSystem()) {
         return false;
-      } catch (IOException ex) {
-        LOG.error("Cache flush failed" +
-            (region != null ? (" for region " + region.getRegionName()) : ""),
-            RemoteExceptionHandler.checkIOException(ex));
-        if (!server.checkFileSystem()) {
-          return false;
-        }
-      } finally {
-        lock.unlock();
       }
+    } finally {
+      lock.unlock();
     }
+
     return true;
   }
   



Mime
View raw message