Return-Path: Delivered-To: apmail-hadoop-mapreduce-commits-archive@minotaur.apache.org Received: (qmail 77859 invoked from network); 24 Feb 2011 18:33:06 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 24 Feb 2011 18:33:06 -0000 Received: (qmail 21166 invoked by uid 500); 24 Feb 2011 18:33:06 -0000 Delivered-To: apmail-hadoop-mapreduce-commits-archive@hadoop.apache.org Received: (qmail 20889 invoked by uid 500); 24 Feb 2011 18:33:04 -0000 Mailing-List: contact mapreduce-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: mapreduce-dev@hadoop.apache.org Delivered-To: mailing list mapreduce-commits@hadoop.apache.org Received: (qmail 20837 invoked by uid 99); 24 Feb 2011 18:33:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Feb 2011 18:33:03 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Feb 2011 18:33:02 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 83BFF23889BB; Thu, 24 Feb 2011 18:32:42 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1074251 - /hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapreduce/TestLocalRunner.java Date: Thu, 24 Feb 2011 18:32:42 -0000 To: mapreduce-commits@hadoop.apache.org From: tomwhite@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110224183242.83BFF23889BB@eris.apache.org> Author: tomwhite Date: Thu Feb 24 18:32:42 2011 New Revision: 1074251 URL: http://svn.apache.org/viewvc?rev=1074251&view=rev Log: Diagnostic change to TestLocalRunner for MAPREDUCE-2284. Modified: hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapreduce/TestLocalRunner.java Modified: hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapreduce/TestLocalRunner.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapreduce/TestLocalRunner.java?rev=1074251&r1=1074250&r2=1074251&view=diff ============================================================================== --- hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapreduce/TestLocalRunner.java (original) +++ hadoop/mapreduce/trunk/src/test/mapred/org/apache/hadoop/mapreduce/TestLocalRunner.java Thu Feb 24 18:32:42 2011 @@ -38,6 +38,7 @@ import org.apache.hadoop.mapred.LocalJob import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.FileSplit; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat; +import org.apache.hadoop.util.ReflectionUtils; import org.junit.Test; import junit.framework.TestCase; @@ -318,7 +319,7 @@ public class TestLocalRunner extends Tes * Run a test with several mappers in parallel, operating at different * speeds. Verify that the correct amount of output is created. */ - @Test + @Test(timeout=120*1000) public void testMultiMaps() throws Exception { Job job = Job.getInstance(); @@ -341,7 +342,39 @@ public class TestLocalRunner extends Tes FileInputFormat.addInputPath(job, inputPath); FileOutputFormat.setOutputPath(job, outputPath); - job.waitForCompletion(true); + final Thread toInterrupt = Thread.currentThread(); + Thread interrupter = new Thread() { + public void run() { + try { + Thread.sleep(120*1000); // 2m + toInterrupt.interrupt(); + } catch (InterruptedException ie) {} + } + }; + LOG.info("Submitting job..."); + job.submit(); + LOG.info("Starting thread to interrupt main thread in 2 minutes"); + interrupter.start(); + LOG.info("Waiting for job to complete..."); + try { + job.waitForCompletion(true); + } catch (InterruptedException ie) { + LOG.fatal("Interrupted while waiting for job completion", ie); + for (int i = 0; i < 10; i++) { + LOG.fatal("Dumping stacks"); + ReflectionUtils.logThreadInfo(LOG, "multimap threads", 0); + Thread.sleep(1000); + } + throw ie; + } + LOG.info("Job completed, stopping interrupter"); + interrupter.interrupt(); + try { + interrupter.join(); + } catch (InterruptedException ie) { + // it might interrupt us right as we interrupt it + } + LOG.info("Verifying output"); verifyOutput(outputPath); }