Return-Path: Delivered-To: apmail-hadoop-mapreduce-commits-archive@minotaur.apache.org Received: (qmail 47743 invoked from network); 3 Apr 2011 09:42:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Apr 2011 09:42:55 -0000 Received: (qmail 98560 invoked by uid 500); 3 Apr 2011 09:42:55 -0000 Delivered-To: apmail-hadoop-mapreduce-commits-archive@hadoop.apache.org Received: (qmail 98449 invoked by uid 500); 3 Apr 2011 09:42:53 -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 98441 invoked by uid 99); 3 Apr 2011 09:42:52 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 03 Apr 2011 09:42:52 +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; Sun, 03 Apr 2011 09:42:47 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0438723888FD; Sun, 3 Apr 2011 09:42:26 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1088232 - in /hadoop/mapreduce/branches/MR-279: mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/ mr-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/ mr-client/hadoop-... Date: Sun, 03 Apr 2011 09:42:25 -0000 To: mapreduce-commits@hadoop.apache.org From: vinodkv@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110403094226.0438723888FD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: vinodkv Date: Sun Apr 3 09:42:25 2011 New Revision: 1088232 URL: http://svn.apache.org/viewvc?rev=1088232&view=rev Log: Fixing tests that were failing after the recent changes to use generic interfaces. Contributed by Vinod Kumar Vavilapalli. Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationIdPBImpl.java hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/FifoScheduler.java hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java (original) +++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-app/src/test/java/org/apache/hadoop/mapreduce/v2/app/TestRuntimeEstimators.java Sun Apr 3 09:42:25 2011 @@ -67,8 +67,10 @@ import org.apache.hadoop.yarn.factories. import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider; import org.apache.hadoop.yarn.service.CompositeService; import org.junit.Assert; +import org.junit.Ignore; import org.junit.Test; +@Ignore public class TestRuntimeEstimators { private static int INITIAL_NUMBER_FREE_SLOTS = 300; Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java (original) +++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/HistoryClientService.java Sun Apr 3 09:42:25 2011 @@ -116,8 +116,11 @@ public class HistoryClientService extend super.start(); } + @Override public void stop() { - server.close(); + if (server != null) { + server.close(); + } if (webApp != null) { webApp.stop(); } Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java (original) +++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapred/TestClientRedirect.java Sun Apr 3 09:42:25 2011 @@ -57,6 +57,7 @@ import org.apache.hadoop.mapreduce.v2.ap import org.apache.hadoop.mapreduce.v2.api.records.TaskAttemptId; import org.apache.hadoop.mapreduce.v2.api.records.TaskId; import org.apache.hadoop.mapreduce.v2.api.records.TaskType; +import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.yarn.YarnException; import org.apache.hadoop.yarn.api.ClientRMProtocol; @@ -86,6 +87,10 @@ import org.junit.Test; public class TestClientRedirect { + static { + DefaultMetricsSystem.setMiniClusterMode(true); + } + private static final Log LOG = LogFactory.getLog(TestClientRedirect.class); private static final String RMADDRESS = "0.0.0.0:8054"; private static final RecordFactory recordFactory = RecordFactoryProvider.getRecordFactory(null); Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java (original) +++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/MiniMRYarnCluster.java Sun Apr 3 09:42:25 2011 @@ -107,6 +107,14 @@ public class MiniMRYarnCluster extends M throw new YarnException(t); } } + + @Override + public synchronized void stop() { + if (historyServer != null) { + historyServer.stop(); + } + super.stop(); + } } public JobHistoryServer getHistoryServer() { return this.historyServer; Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java (original) +++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobs.java Sun Apr 3 09:42:25 2011 @@ -28,8 +28,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.FailingMapper; import org.apache.hadoop.RandomTextWriterJob; -import org.apache.hadoop.SleepJob; import org.apache.hadoop.RandomTextWriterJob.RandomInputFormat; +import org.apache.hadoop.SleepJob; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.CommonConfigurationKeysPublic; import org.apache.hadoop.fs.FileContext; @@ -50,12 +50,11 @@ import org.apache.hadoop.mapreduce.lib.o import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.token.Token; import org.apache.hadoop.security.token.TokenIdentifier; -import org.apache.hadoop.yarn.conf.YARNApplicationConstants; import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.server.YarnServerConfig; import org.apache.hadoop.yarn.server.nodemanager.NMConfig; import org.apache.hadoop.yarn.server.resourcemanager.RMConfig; -import org.junit.Before; +import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -65,8 +64,8 @@ public class TestMRJobs { private static MiniMRYarnCluster mrCluster; - @Before - public void setup() throws InterruptedException, IOException { + @BeforeClass + public static void setup() { if (!(new File(MiniMRYarnCluster.APPJAR)).exists()) { LOG.info("MRAppJar " + MiniMRYarnCluster.APPJAR + " not found. Not running test."); @@ -74,12 +73,19 @@ public class TestMRJobs { } if (mrCluster == null) { - mrCluster = new MiniMRYarnCluster(getClass().getName()); + mrCluster = new MiniMRYarnCluster(TestMRJobs.class.getName()); mrCluster.init(new Configuration()); mrCluster.start(); } } + @AfterClass + public static void tearDown() { + if (mrCluster != null) { + mrCluster.stop(); + } + } + @Test public void testSleepJob() throws IOException, InterruptedException, ClassNotFoundException { Modified: hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java (original) +++ hadoop/mapreduce/branches/MR-279/mr-client/hadoop-mapreduce-client-jobclient/src/test/java/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java Sun Apr 3 09:42:25 2011 @@ -34,6 +34,7 @@ import org.apache.hadoop.mapreduce.TypeC import org.apache.hadoop.yarn.api.records.ApplicationId; import org.apache.hadoop.yarn.api.records.ApplicationState; import org.junit.Before; +import org.junit.After; import org.junit.Test; public class TestMRJobsWithHistoryService { @@ -57,6 +58,19 @@ public class TestMRJobsWithHistoryServic } } + @After + public void tearDown() { + if (!(new File(MiniMRYarnCluster.APPJAR)).exists()) { + LOG.info("MRAppJar " + MiniMRYarnCluster.APPJAR + + " not found. Not running test."); + return; + } + + if (mrCluster != null) { + mrCluster.stop(); + } + } + @Test public void testJobHistoryData() throws IOException, InterruptedException, AvroRemoteException, ClassNotFoundException { Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationIdPBImpl.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationIdPBImpl.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationIdPBImpl.java (original) +++ hadoop/mapreduce/branches/MR-279/yarn/yarn-api/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ApplicationIdPBImpl.java Sun Apr 3 09:42:25 2011 @@ -23,6 +23,7 @@ public class ApplicationIdPBImpl extends } public ApplicationIdProto getProto() { + maybeInitBuilder(); proto = viaProto ? proto : builder.build(); viaProto = true; return proto; Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java (original) +++ hadoop/mapreduce/branches/MR-279/yarn/yarn-common/src/main/java/org/apache/hadoop/yarn/security/ContainerTokenIdentifier.java Sun Apr 3 09:42:25 2011 @@ -69,6 +69,7 @@ public class ContainerTokenIdentifier ex LOG.info("Writing ContainerTokenIdentifier to RPC layer"); out.writeInt(this.containerId.getAppId().getId()); out.writeInt(this.containerId.getId()); + // TODO: Cluster time-stamp? out.writeUTF(this.nmHostName); out.writeInt(this.resource.getMemory()); // TODO: more resources. } Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java (original) +++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java Sun Apr 3 09:42:25 2011 @@ -20,6 +20,7 @@ package org.apache.hadoop.yarn.server.re import java.io.IOException; +import java.util.concurrent.atomic.AtomicBoolean; import org.apache.avro.AvroRuntimeException; import org.apache.commons.logging.Log; @@ -65,7 +66,7 @@ public class ResourceManager extends Com private RMResourceTrackerImpl rmResourceTracker; private ClientRMService clientRM; private ApplicationMasterService masterService; - private Boolean shutdown = false; + private AtomicBoolean shutdown = new AtomicBoolean(false); private WebApp webApp; private final ASMContext asmContext; @@ -131,18 +132,19 @@ public class ResourceManager extends Com } catch(IOException ie) { throw new AvroRuntimeException("Failed to login", ie); } - super.start(); webApp = WebApps.$for("yarn", masterService).at( conf.get(YarnConfiguration.RM_WEBAPP_BIND_ADDRESS, YarnConfiguration.DEFAULT_RM_WEBAPP_BIND_ADDRESS)). start(new RMWebApp(this)); - } - public void run() { + super.start(); + synchronized(shutdown) { try { - shutdown.wait(); + while(!shutdown.get()) { + shutdown.wait(); + } } catch(InterruptedException ie) { LOG.info("Interrupted while waiting", ie); } @@ -161,8 +163,8 @@ public class ResourceManager extends Com } synchronized(shutdown) { - shutdown = true; - shutdown.notify(); + shutdown.set(true); + shutdown.notifyAll(); } super.stop(); } @@ -217,7 +219,6 @@ public class ResourceManager extends Com resourceManager = new ResourceManager(); resourceManager.init(conf); resourceManager.start(); - resourceManager.run(); } catch (Exception e) { LOG.error("Error starting RM", e); } finally { Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/FifoScheduler.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/FifoScheduler.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/FifoScheduler.java (original) +++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/FifoScheduler.java Sun Apr 3 09:42:25 2011 @@ -122,7 +122,10 @@ public class FifoScheduler implements Re // Release containers releaseContainers(application, release); - + + LOG.debug("allocate: post-update" + + " applicationId=" + applicationId + + " application=" + application); application.showRequests(); List allContainers = application.acquire(); Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java (original) +++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/MiniYARNCluster.java Sun Apr 3 09:42:25 2011 @@ -24,11 +24,13 @@ import java.io.IOException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.NodeHealthCheckerService; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileContext; import org.apache.hadoop.fs.Path; +import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem; import org.apache.hadoop.yarn.YarnException; -import org.apache.hadoop.yarn.server.api.ResourceTracker; import org.apache.hadoop.yarn.event.Dispatcher; +import org.apache.hadoop.yarn.server.api.ResourceTracker; import org.apache.hadoop.yarn.server.nodemanager.NMConfig; import org.apache.hadoop.yarn.server.nodemanager.NodeManager; import org.apache.hadoop.yarn.server.nodemanager.NodeStatusUpdaterImpl; @@ -40,6 +42,10 @@ public class MiniYARNCluster extends Com private static final Log LOG = LogFactory.getLog(MiniYARNCluster.class); + static { + DefaultMetricsSystem.setMiniClusterMode(true); + } + private NodeManager nodeManager; private ResourceManager resourceManager; @@ -96,19 +102,31 @@ public class MiniYARNCluster extends Com resourceManager.start(); }; }.start(); - while (resourceManager.getServiceState() == STATE.INITED) { + int waitCount = 0; + while (resourceManager.getServiceState() == STATE.INITED + && waitCount++ < 60) { LOG.info("Waiting for RM to start..."); Thread.sleep(1500); } if (resourceManager.getServiceState() != STATE.STARTED) { // RM could have failed. - throw new IOException("ResourceManager failed to start"); + throw new IOException( + "ResourceManager failed to start. Final state is " + + resourceManager.getServiceState()); } super.start(); } catch (Throwable t) { throw new YarnException(t); } } + + @Override + public synchronized void stop() { + if (resourceManager != null) { + resourceManager.stop(); + } + super.stop(); + } } private class NodeManagerWrapper extends AbstractService { @@ -116,7 +134,7 @@ public class MiniYARNCluster extends Com super(NodeManagerWrapper.class.getName()); } - public void start() { + public synchronized void start() { try { File localDir = new File(testWorkDir, MiniYARNCluster.this.getName() + "-localDir"); @@ -153,7 +171,9 @@ public class MiniYARNCluster extends Com nodeManager.start(); }; }.start(); - while (nodeManager.getServiceState() == STATE.INITED) { + int waitCount = 0; + while (nodeManager.getServiceState() == STATE.INITED + && waitCount++ < 60) { LOG.info("Waiting for NM to start..."); Thread.sleep(1000); } @@ -161,9 +181,18 @@ public class MiniYARNCluster extends Com // RM could have failed. throw new IOException("NodeManager failed to start"); } + super.start(); } catch (Throwable t) { throw new YarnException(t); } } + + @Override + public synchronized void stop() { + if (nodeManager != null) { + nodeManager.stop(); + } + super.stop(); + } } } Modified: hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java URL: http://svn.apache.org/viewvc/hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java?rev=1088232&r1=1088231&r2=1088232&view=diff ============================================================================== --- hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java (original) +++ hadoop/mapreduce/branches/MR-279/yarn/yarn-server/yarn-server-tests/src/test/java/org/apache/hadoop/yarn/server/TestContainerTokenSecretManager.java Sun Apr 3 09:42:25 2011 @@ -47,7 +47,9 @@ import org.apache.hadoop.yarn.api.AMRMPr import org.apache.hadoop.yarn.api.ContainerManager; import org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest; import org.apache.hadoop.yarn.api.protocolrecords.GetContainerStatusRequest; +import org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterRequest; import org.apache.hadoop.yarn.api.records.ApplicationId; +import org.apache.hadoop.yarn.api.records.ApplicationMaster; import org.apache.hadoop.yarn.api.records.ApplicationState; import org.apache.hadoop.yarn.api.records.ApplicationStatus; import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext; @@ -64,6 +66,7 @@ import org.apache.hadoop.yarn.exceptions import org.apache.hadoop.yarn.factories.RecordFactory; import org.apache.hadoop.yarn.factory.providers.RecordFactoryProvider; import org.apache.hadoop.yarn.ipc.YarnRPC; +import org.apache.hadoop.yarn.proto.YarnProtos.ApplicationIdProto; import org.apache.hadoop.yarn.security.ApplicationTokenIdentifier; import org.apache.hadoop.yarn.security.ApplicationTokenSecretManager; import org.apache.hadoop.yarn.security.ContainerManagerSecurityInfo; @@ -84,9 +87,10 @@ public class TestContainerTokenSecretMan @Test public void test() throws IOException, InterruptedException { final ContainerId containerID = recordFactory.newRecordInstance(ContainerId.class); - containerID.setAppId(recordFactory.newRecordInstance(ApplicationId.class)); - ContainerTokenSecretManager secretManager = - new ContainerTokenSecretManager(); + ApplicationId appID = recordFactory.newRecordInstance(ApplicationId.class); + appID.setClusterTimestamp(1234); + appID.setId(5); + containerID.setAppId(appID); final Configuration conf = new Configuration(); conf.set(CommonConfigurationKeysPublic.HADOOP_SECURITY_AUTHENTICATION, "kerberos"); @@ -99,7 +103,6 @@ public class TestContainerTokenSecretMan yarnCluster.start(); ResourceManager resourceManager = yarnCluster.getResourceManager(); - NodeManager nodeManager = yarnCluster.getNodeManager(); final YarnRPC yarnRPC = YarnRPC.create(conf); @@ -170,6 +173,23 @@ public class TestContainerTokenSecretMan schedulerAddr, conf); } }); + + // Register the appMaster + RegisterApplicationMasterRequest request = + recordFactory + .newRecordInstance(RegisterApplicationMasterRequest.class); + ApplicationMaster applicationMaster = recordFactory + .newRecordInstance(ApplicationMaster.class); + applicationMaster.setApplicationId(containerID.getAppId()); + applicationMaster.setState(ApplicationState.RUNNING); + ApplicationStatus status = + recordFactory.newRecordInstance(ApplicationStatus.class); + status.setApplicationId(containerID.getAppId()); + applicationMaster.setStatus(status); + request.setApplicationMaster(applicationMaster); + scheduler.registerApplicationMaster(request); + + // Now request a container allocation. List ask = new ArrayList(); ResourceRequest rr = recordFactory.newRecordInstance(ResourceRequest.class); rr.setCapability(recordFactory.newRecordInstance(Resource.class)); @@ -177,10 +197,9 @@ public class TestContainerTokenSecretMan rr.setHostName("*"); rr.setNumContainers(1); rr.setPriority(recordFactory.newRecordInstance(Priority.class)); + rr.getPriority().setPriority(0); ask.add(rr); ArrayList release = new ArrayList(); - ApplicationStatus status = recordFactory.newRecordInstance(ApplicationStatus.class); - status.setApplicationId(containerID.getAppId()); AllocateRequest allocateRequest = recordFactory.newRecordInstance(AllocateRequest.class); allocateRequest.setApplicationStatus(status); @@ -188,7 +207,6 @@ public class TestContainerTokenSecretMan allocateRequest.addAllReleases(release); List allocatedContainers = scheduler.allocate(allocateRequest).getAMResponse().getContainerList(); - ask.clear(); waitCounter = 0; while ((allocatedContainers == null || allocatedContainers.size() == 0)