Return-Path: Delivered-To: apmail-lucene-hadoop-commits-archive@locus.apache.org Received: (qmail 15176 invoked from network); 1 Nov 2007 22:49:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 1 Nov 2007 22:49:38 -0000 Received: (qmail 19741 invoked by uid 500); 1 Nov 2007 22:49:26 -0000 Delivered-To: apmail-lucene-hadoop-commits-archive@lucene.apache.org Received: (qmail 19701 invoked by uid 500); 1 Nov 2007 22:49:26 -0000 Mailing-List: contact hadoop-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hadoop-dev@lucene.apache.org Delivered-To: mailing list hadoop-commits@lucene.apache.org Received: (qmail 19687 invoked by uid 99); 1 Nov 2007 22:49:26 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2007 15:49:26 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 01 Nov 2007 22:49:52 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1C0021A9832; Thu, 1 Nov 2007 15:49:13 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r591162 - in /lucene/hadoop/trunk/src/contrib/hbase: CHANGES.txt src/java/org/apache/hadoop/hbase/HMaster.java src/test/org/apache/hadoop/hbase/OOMEHMaster.java Date: Thu, 01 Nov 2007 22:49:12 -0000 To: hadoop-commits@lucene.apache.org From: jimk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071101224913.1C0021A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jimk Date: Thu Nov 1 15:49:08 2007 New Revision: 591162 URL: http://svn.apache.org/viewvc?rev=591162&view=rev Log: HADOOP-2109 Fixed race condition in processing server lease timeout. Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/OOMEHMaster.java Modified: lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt?rev=591162&r1=591161&r2=591162&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt (original) +++ lucene/hadoop/trunk/src/contrib/hbase/CHANGES.txt Thu Nov 1 15:49:08 2007 @@ -18,6 +18,7 @@ HADOOP-2079 HADOOP-2056 Fix generated HLog, HRegion names HADOOP-2124 Use of `hostname` does not work on Cygwin in some cases HADOOP-2083 TestTableIndex failed in #970 and #956 + HADOOP-2109 Fixed race condition in processing server lease timeout. IMPROVEMENTS HADOOP-2401 Add convenience put method that takes writable Modified: lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java?rev=591162&r1=591161&r2=591162&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/java/org/apache/hadoop/hbase/HMaster.java Thu Nov 1 15:49:08 2007 @@ -409,8 +409,7 @@ } protected void checkAssigned(final HRegionInfo info, - final String serverName, final long startCode) - throws IOException { + final String serverName, final long startCode) throws IOException { // Skip region - if ... if(info.isOffline() // offline || killedRegions.contains(info.getRegionName()) // queued for offline @@ -435,7 +434,7 @@ } synchronized (serversToServerInfo) { storedInfo = serversToServerInfo.get(serverName); - if (storedInfo != null && deadServers.contains(serverName)) { + if (deadServers.contains(serverName)) { deadServer = true; } } @@ -443,10 +442,23 @@ if (LOG.isDebugEnabled()) { LOG.debug("Checking " + info.getRegionName() + " is assigned"); } - if (!(unassignedRegions.containsKey(info.getRegionName()) || - pendingRegions.contains(info.getRegionName())) - && (storedInfo == null || - (storedInfo.getStartCode() != startCode && !deadServer))) { + + /* + * If the server is not dead and either: + * the stored info is not null and the start code does not match + * or: + * the stored info is null and the region is neither unassigned nor pending + * then: + */ + if (!deadServer && + ((storedInfo != null && storedInfo.getStartCode() != startCode) || + (storedInfo == null && + !unassignedRegions.containsKey(info.getRegionName()) && + !pendingRegions.contains(info.getRegionName()) + ) + ) + ) { + // The current assignment is no good if (LOG.isDebugEnabled()) { LOG.debug("Current assignment of " + info.getRegionName() + @@ -2390,6 +2402,7 @@ return !closed.get(); } + /** {@inheritDoc} */ public void shutdown() { TimerTask tt = new TimerTask() { @Override @@ -3021,8 +3034,8 @@ } protected static void doMain(String [] args, - Class masterClass) - throws IOException { + Class masterClass) { + if (args.length < 1) { printUsageAndExit(); } @@ -3079,9 +3092,8 @@ /** * Main program * @param args - * @throws IOException */ - public static void main(String [] args) throws IOException { + public static void main(String [] args) { doMain(args, HMaster.class); } } Modified: lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/OOMEHMaster.java URL: http://svn.apache.org/viewvc/lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/OOMEHMaster.java?rev=591162&r1=591161&r2=591162&view=diff ============================================================================== --- lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/OOMEHMaster.java (original) +++ lucene/hadoop/trunk/src/contrib/hbase/src/test/org/apache/hadoop/hbase/OOMEHMaster.java Thu Nov 1 15:49:08 2007 @@ -54,9 +54,8 @@ /** * @param args - * @throws IOException */ - public static void main(String[] args) throws IOException { + public static void main(String[] args) { doMain(args, OOMEHMaster.class); } }