Author: stack
Date: Fri Jun  6 12:52:24 2008
New Revision: 664105

URL: http://svn.apache.org/viewvc?rev=664105&view=rev
Log:
HBASE-670 Historian deadlocks if regionserver is at global memory boundary and 
is hosting .META.

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/RegionHistorian.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=664105&r1=664104&r2=664105&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Fri Jun  6 12:52:24 2008
@@ -41,6 +41,8 @@
    HBASE-654   API HTable.getMetadata().addFamily shouldn't be exposed to user
    HBASE-666   UnmodifyableHRegionInfo gives the wrong encoded name
    HBASE-668   HBASE-533 broke build
+   HBASE-670   Historian deadlocks if regionserver is at global memory boundary
+               and is hosting .META.
    
   IMPROVEMENTS
    HBASE-559   MR example job to count table rows

Modified: 
hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/RegionHistorian.java
URL: 
http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/RegionHistorian.java?rev=664105&r1=664104&r2=664105&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/RegionHistorian.java 
(original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/RegionHistorian.java 
Fri Jun  6 12:52:24 2008
@@ -180,22 +180,22 @@
    * Method to add a compaction event to the row in the .META table
    * @param info
    */
-  public void addRegionCompaction(HRegionInfo info, String timeTaken) {
-    if (LOG.isDebugEnabled()) {
-      add(HistorianColumnKey.REGION_COMPACTION.key,
-          "Region compaction completed in " + timeTaken, info);
-    }
+  public void addRegionCompaction(HRegionInfo info,
+    @SuppressWarnings("unused") String timeTaken) {
+    // Disabled.  Noop.  If this regionserver is hosting the .META. AND is
+    // holding the reclaimMemcacheMemory global lock, we deadlock.  For now,
+    // just disable logging of flushes and compactions.
   }
 
   /**
    * Method to add a flush event to the row in the .META table
    * @param info
    */
-  public void addRegionFlush(HRegionInfo info, String timeTaken) {
-    if (LOG.isDebugEnabled()) {
-      add(HistorianColumnKey.REGION_FLUSH.key, "Region flush completed in "
-          + timeTaken, info);
-    }
+  public void addRegionFlush(HRegionInfo info,
+    @SuppressWarnings("unused") String timeTaken) {
+    // Disabled.  Noop.  If this regionserver is hosting the .META. AND is
+    // holding the reclaimMemcacheMemory global lock, we deadlock.  For now,
+    // just disable logging of flushes and compactions.
   }
 
   /**
@@ -296,6 +296,9 @@
   public void online(final HBaseConfiguration c) {
     try {
       this.metaTable = new HTable(c, META_TABLE_NAME);
+      if (LOG.isDebugEnabled()) {
+        LOG.debug("Onlined");
+      }
     } catch (IOException ioe) {
       LOG.error("Unable to create RegionHistorian", ioe);
     }
@@ -307,5 +310,8 @@
    */
   public void offline() {
     this.metaTable = null;
+    if (LOG.isDebugEnabled()) {
+      LOG.debug("Offlined");
+    }
   }
 }
\ No newline at end of file


Reply via email to