Author: stack Date: Mon May 17 17:14:21 2010 New Revision: 945242 URL: http://svn.apache.org/viewvc?rev=945242&view=rev Log: HBASE-2428 NPE in ProcessRegionClose because meta is offline kills master and thus the cluster
Modified: hadoop/hbase/branches/0.20/CHANGES.txt hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/HMaster.java hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessRegionClose.java Modified: hadoop/hbase/branches/0.20/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/CHANGES.txt?rev=945242&r1=945241&r2=945242&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/CHANGES.txt (original) +++ hadoop/hbase/branches/0.20/CHANGES.txt Mon May 17 17:14:21 2010 @@ -7,6 +7,8 @@ Release 0.20.5 HBASE-2503 PriorityQueue isn't thread safe, KeyValueHeap uses it that way HBASE-2482 Regions in transition do not get reassigned by master when RS crashes (Todd Lipcon via Stack) + HBASE-2428 NPE in ProcessRegionClose because meta is offline kills master + and thus the cluster Release 0.20.4 - Mon May 3 16:16:02 PDT 2010 INCOMPATIBLE CHANGES Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/HMaster.java URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/HMaster.java?rev=945242&r1=945241&r2=945242&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/HMaster.java (original) +++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/HMaster.java Mon May 17 17:14:21 2010 @@ -531,7 +531,7 @@ public class HMaster extends Thread impl return false; } LOG.warn("Processing pending operations: " + op.toString(), ex); - delayedToDoQueue.put(op); + op.requeue(); } return true; } Modified: hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessRegionClose.java URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessRegionClose.java?rev=945242&r1=945241&r2=945242&view=diff ============================================================================== --- hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessRegionClose.java (original) +++ hadoop/hbase/branches/0.20/src/java/org/apache/hadoop/hbase/master/ProcessRegionClose.java Mon May 17 17:14:21 2010 @@ -58,6 +58,13 @@ class ProcessRegionClose extends Process @Override protected boolean process() throws IOException { + if (!metaRegionAvailable()) { + // We can't proceed unless the meta region we are going to update + // is online. metaRegionAvailable() has put this operation on the + // delayedToDoQueue, so return true so the operation is not put + // back on the toDoQueue + return true; + } Boolean result = null; if (offlineRegion || reassignRegion) { result =