From 617e294a638a676413fb3ea448ac6e544486b52a Mon Sep 17 00:00:00 2001 From: Xuan Date: Tue, 11 Aug 2015 18:27:23 -0700 Subject: [PATCH] YARN-3999. RM hangs on draing events. Contributed by Jian He --- hadoop-yarn-project/CHANGES.txt | 2 ++ .../hadoop/yarn/conf/YarnConfiguration.java | 5 ++++ .../hadoop/yarn/event/AsyncDispatcher.java | 5 ++++ .../src/main/resources/yarn-default.xml | 9 ++++++ .../yarn/event/TestAsyncDispatcher.java | 25 +++++++++++++--- .../RMActiveServiceContext.java | 30 ------------------- .../server/resourcemanager/RMContextImpl.java | 23 +++++++------- .../resourcemanager/ResourceManager.java | 30 +++++++++---------- .../resourcemanager/TestAppManager.java | 5 ++-- .../resourcemanager/TestResourceManager.java | 1 + .../rmapp/TestRMAppTransitions.java | 6 ++-- .../attempt/TestRMAppAttemptTransitions.java | 8 ++--- .../scheduler/capacity/TestUtils.java | 7 +++-- .../scheduler/fifo/TestFifoScheduler.java | 17 +++++------ 14 files changed, 90 insertions(+), 83 deletions(-) diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt index 545bebe55e5..b409030ef0f 100644 --- a/hadoop-yarn-project/CHANGES.txt +++ b/hadoop-yarn-project/CHANGES.txt @@ -47,6 +47,8 @@ Release 2.7.2 - UNRELEASED YARN-3990. AsyncDispatcher may overloaded with RMAppNodeUpdateEvent when Node is connected/disconnected (Bibin A Chundatt via jlowe) + YARN-3999. RM hangs on draing events. (Jian He via xgong) + Release 2.7.1 - 2015-07-06 INCOMPATIBLE CHANGES diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java index 9953d40c585..9e391a19763 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java @@ -1176,6 +1176,11 @@ private static void addDeprecatedKeys() { public static final long DEFAULT_RESOURCEMANAGER_CONNECT_RETRY_INTERVAL_MS = 30 * 1000; + public static final String DISPATCHER_DRAIN_EVENTS_TIMEOUT = + YARN_PREFIX + "dispatcher.drain-events.timeout"; + + public static final long DEFAULT_DISPATCHER_DRAIN_EVENTS_TIMEOUT = 300000; + /** * CLASSPATH for YARN applications. A comma-separated list of CLASSPATH * entries diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java index dd19813ef07..db4d3265c3e 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/event/AsyncDispatcher.java @@ -32,6 +32,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.service.AbstractService; import org.apache.hadoop.util.ShutdownHookManager; +import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.exceptions.YarnRuntimeException; import com.google.common.annotations.VisibleForTesting; @@ -138,6 +139,10 @@ protected void serviceStop() throws Exception { if (drainEventsOnStop) { blockNewEvents = true; LOG.info("AsyncDispatcher is draining to stop, igonring any new events."); + long endTime = System.currentTimeMillis() + getConfig() + .getLong(YarnConfiguration.DISPATCHER_DRAIN_EVENTS_TIMEOUT, + YarnConfiguration.DEFAULT_DISPATCHER_DRAIN_EVENTS_TIMEOUT); + synchronized (waitForDrained) { while (!drained && eventHandlingThread.isAlive()) { waitForDrained.wait(1000); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 079d4d2817d..4e6d7fe7304 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -88,6 +88,15 @@ 10 + + Timeout in milliseconds when YARN dispatcher tries to drain the + events. Typically, this happens when service is stopping. e.g. RM drains + the ATS events dispatcher when stopping. + + yarn.dispatcher.drain-events.timeout + 300000 + + The expiry interval for application master reporting. yarn.am.liveness-monitor.expiry-interval-ms diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/event/TestAsyncDispatcher.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/event/TestAsyncDispatcher.java index b5fd9236d92..ba0deffe4c8 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/event/TestAsyncDispatcher.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/event/TestAsyncDispatcher.java @@ -18,18 +18,17 @@ package org.apache.hadoop.yarn.event; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; - import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.yarn.conf.YarnConfiguration; import org.apache.hadoop.yarn.exceptions.YarnRuntimeException; import org.junit.Assert; import org.junit.Test; +import static org.mockito.Mockito.*; + public class TestAsyncDispatcher { /* This test checks whether dispatcher hangs on close if following two things @@ -58,5 +57,23 @@ public void testDispatcherOnCloseIfQueueEmpty() throws Exception { eventQueue.isEmpty()); disp.close(); } + + // Test dispatcher should timeout on draining events. + @Test(timeout=10000) + public void testDispatchStopOnTimeout() throws Exception { + BlockingQueue eventQueue = new LinkedBlockingQueue(); + eventQueue = spy(eventQueue); + // simulate dispatcher is not drained. + when(eventQueue.isEmpty()).thenReturn(false); + + YarnConfiguration conf = new YarnConfiguration(); + conf.setInt(YarnConfiguration.DISPATCHER_DRAIN_EVENTS_TIMEOUT, 2000); + DrainDispatcher disp = new DrainDispatcher(eventQueue); + disp.init(conf); + disp.setDrainEventsOnStop(); + disp.start(); + disp.waitForEventThreadToWait(); + disp.close(); + } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMActiveServiceContext.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMActiveServiceContext.java index 03fc40ed2c5..049e71ee6e8 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMActiveServiceContext.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMActiveServiceContext.java @@ -92,8 +92,6 @@ public class RMActiveServiceContext { private NodesListManager nodesListManager; private ResourceTrackerService resourceTrackerService; private ApplicationMasterService applicationMasterService; - private RMApplicationHistoryWriter rmApplicationHistoryWriter; - private SystemMetricsPublisher systemMetricsPublisher; private RMNodeLabelsManager nodeLabelManager; private long epoch; private Clock systemClock = new SystemClock(); @@ -117,7 +115,6 @@ public RMActiveServiceContext(Dispatcher rmDispatcher, RMContainerTokenSecretManager containerTokenSecretManager, NMTokenSecretManagerInRM nmTokenSecretManager, ClientToAMTokenSecretManagerInRM clientToAMTokenSecretManager, - RMApplicationHistoryWriter rmApplicationHistoryWriter, ResourceScheduler scheduler) { this(); this.setContainerAllocationExpirer(containerAllocationExpirer); @@ -128,7 +125,6 @@ public RMActiveServiceContext(Dispatcher rmDispatcher, this.setContainerTokenSecretManager(containerTokenSecretManager); this.setNMTokenSecretManager(nmTokenSecretManager); this.setClientToAMTokenSecretManager(clientToAMTokenSecretManager); - this.setRMApplicationHistoryWriter(rmApplicationHistoryWriter); this.setScheduler(scheduler); RMStateStore nullStore = new NullRMStateStore(); @@ -368,32 +364,6 @@ public boolean isWorkPreservingRecoveryEnabled() { return this.isWorkPreservingRecoveryEnabled; } - @Private - @Unstable - public RMApplicationHistoryWriter getRMApplicationHistoryWriter() { - return rmApplicationHistoryWriter; - } - - @Private - @Unstable - public void setSystemMetricsPublisher( - SystemMetricsPublisher systemMetricsPublisher) { - this.systemMetricsPublisher = systemMetricsPublisher; - } - - @Private - @Unstable - public SystemMetricsPublisher getSystemMetricsPublisher() { - return systemMetricsPublisher; - } - - @Private - @Unstable - public void setRMApplicationHistoryWriter( - RMApplicationHistoryWriter rmApplicationHistoryWriter) { - this.rmApplicationHistoryWriter = rmApplicationHistoryWriter; - } - @Private @Unstable public long getEpoch() { diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java index 1d0d6c0bf8a..dc667268998 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/RMContextImpl.java @@ -68,6 +68,9 @@ public class RMContextImpl implements RMContext { private Configuration yarnConfiguration; + private RMApplicationHistoryWriter rmApplicationHistoryWriter; + private SystemMetricsPublisher systemMetricsPublisher; + /** * Default constructor. To be used in conjunction with setter methods for * individual fields. @@ -87,7 +90,6 @@ public RMContextImpl(Dispatcher rmDispatcher, RMContainerTokenSecretManager containerTokenSecretManager, NMTokenSecretManagerInRM nmTokenSecretManager, ClientToAMTokenSecretManagerInRM clientToAMTokenSecretManager, - RMApplicationHistoryWriter rmApplicationHistoryWriter, ResourceScheduler scheduler) { this(); this.setDispatcher(rmDispatcher); @@ -95,7 +97,7 @@ public RMContextImpl(Dispatcher rmDispatcher, containerAllocationExpirer, amLivelinessMonitor, amFinishingMonitor, delegationTokenRenewer, appTokenSecretManager, containerTokenSecretManager, nmTokenSecretManager, - clientToAMTokenSecretManager, rmApplicationHistoryWriter, + clientToAMTokenSecretManager, scheduler)); ConfigurationProvider provider = new LocalConfigurationProvider(); @@ -112,8 +114,7 @@ public RMContextImpl(Dispatcher rmDispatcher, AMRMTokenSecretManager appTokenSecretManager, RMContainerTokenSecretManager containerTokenSecretManager, NMTokenSecretManagerInRM nmTokenSecretManager, - ClientToAMTokenSecretManagerInRM clientToAMTokenSecretManager, - RMApplicationHistoryWriter rmApplicationHistoryWriter) { + ClientToAMTokenSecretManagerInRM clientToAMTokenSecretManager) { this( rmDispatcher, containerAllocationExpirer, @@ -123,9 +124,7 @@ public RMContextImpl(Dispatcher rmDispatcher, appTokenSecretManager, containerTokenSecretManager, nmTokenSecretManager, - clientToAMTokenSecretManager, - rmApplicationHistoryWriter, - null); + clientToAMTokenSecretManager, null); } @Override @@ -350,25 +349,25 @@ public boolean isWorkPreservingRecoveryEnabled() { @Override public RMApplicationHistoryWriter getRMApplicationHistoryWriter() { - return activeServiceContext.getRMApplicationHistoryWriter(); + return this.rmApplicationHistoryWriter; } @Override public void setSystemMetricsPublisher( SystemMetricsPublisher systemMetricsPublisher) { - activeServiceContext.setSystemMetricsPublisher(systemMetricsPublisher); + this.systemMetricsPublisher = systemMetricsPublisher; } @Override public SystemMetricsPublisher getSystemMetricsPublisher() { - return activeServiceContext.getSystemMetricsPublisher(); + return this.systemMetricsPublisher; } @Override public void setRMApplicationHistoryWriter( RMApplicationHistoryWriter rmApplicationHistoryWriter) { - activeServiceContext - .setRMApplicationHistoryWriter(rmApplicationHistoryWriter); + this.rmApplicationHistoryWriter = rmApplicationHistoryWriter; + } @Override diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java index ed4cdc98370..6c1e2daa5cf 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/ResourceManager.java @@ -244,7 +244,7 @@ protected void serviceInit(Configuration conf) throws Exception { adminService = createAdminService(); addService(adminService); rmContext.setRMAdminService(adminService); - + rmContext.setYarnConfiguration(conf); createAndInitActiveServices(); @@ -253,6 +253,15 @@ protected void serviceInit(Configuration conf) throws Exception { YarnConfiguration.RM_BIND_HOST, WebAppUtils.getRMWebAppURLWithoutScheme(this.conf)); + RMApplicationHistoryWriter rmApplicationHistoryWriter = + createRMApplicationHistoryWriter(); + addService(rmApplicationHistoryWriter); + rmContext.setRMApplicationHistoryWriter(rmApplicationHistoryWriter); + + SystemMetricsPublisher systemMetricsPublisher = createSystemMetricsPublisher(); + addService(systemMetricsPublisher); + rmContext.setSystemMetricsPublisher(systemMetricsPublisher); + super.serviceInit(this.conf); } @@ -405,7 +414,6 @@ protected void serviceInit(Configuration configuration) throws Exception { rmContext.setActiveServiceContext(activeServiceContext); conf.setBoolean(Dispatcher.DISPATCHER_EXIT_ON_ERROR_KEY, true); - rmSecretManagerService = createRMSecretManagerService(); addService(rmSecretManagerService); @@ -462,15 +470,6 @@ protected void serviceInit(Configuration configuration) throws Exception { rmContext.setDelegationTokenRenewer(delegationTokenRenewer); } - RMApplicationHistoryWriter rmApplicationHistoryWriter = - createRMApplicationHistoryWriter(); - addService(rmApplicationHistoryWriter); - rmContext.setRMApplicationHistoryWriter(rmApplicationHistoryWriter); - - SystemMetricsPublisher systemMetricsPublisher = createSystemMetricsPublisher(); - addService(systemMetricsPublisher); - rmContext.setSystemMetricsPublisher(systemMetricsPublisher); - // Register event handler for NodesListManager nodesListManager = new NodesListManager(rmContext); rmDispatcher.register(NodesListManagerEventType.class, nodesListManager); @@ -586,8 +585,8 @@ protected void serviceStart() throws Exception { @Override protected void serviceStop() throws Exception { + super.serviceStop(); DefaultMetricsSystem.shutdown(); - if (rmContext != null) { RMStateStore store = rmContext.getStateStore(); try { @@ -597,7 +596,6 @@ protected void serviceStop() throws Exception { } } - super.serviceStop(); } protected void createPolicyMonitors() { @@ -1020,12 +1018,12 @@ synchronized void transitionToStandby(boolean initialize) } LOG.info("Transitioning to standby state"); - if (rmContext.getHAServiceState() == - HAServiceProtocol.HAServiceState.ACTIVE) { + HAServiceState state = rmContext.getHAServiceState(); + rmContext.setHAServiceState(HAServiceProtocol.HAServiceState.STANDBY); + if (state == HAServiceProtocol.HAServiceState.ACTIVE) { stopActiveServices(); reinitialize(initialize); } - rmContext.setHAServiceState(HAServiceProtocol.HAServiceState.STANDBY); LOG.info("Transitioned to standby state"); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java index b2cde9e4ad5..116034864e4 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java @@ -118,7 +118,7 @@ public RMContext mockRMContext(int n, long time) { RMApplicationHistoryWriter writer = mock(RMApplicationHistoryWriter.class); RMContext context = new RMContextImpl(rmDispatcher, containerAllocationExpirer, amLivelinessMonitor, amFinishingMonitor, - null, null, null, null, null, writer) { + null, null, null, null, null) { @Override public ConcurrentMap getRMApps() { return map; @@ -126,7 +126,8 @@ public ConcurrentMap getRMApps() { }; ((RMContextImpl)context).setStateStore(mock(RMStateStore.class)); metricsPublisher = mock(SystemMetricsPublisher.class); - ((RMContextImpl)context).setSystemMetricsPublisher(metricsPublisher); + context.setSystemMetricsPublisher(metricsPublisher); + context.setRMApplicationHistoryWriter(writer); return context; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceManager.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceManager.java index 6735575aefa..1ab195afa93 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceManager.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestResourceManager.java @@ -66,6 +66,7 @@ public void setUp() throws Exception { @After public void tearDown() throws Exception { + resourceManager.stop(); } private org.apache.hadoop.yarn.server.resourcemanager.NodeManager diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java index 72f1dffa7d4..2e64d61b08a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/TestRMAppTransitions.java @@ -212,11 +212,11 @@ public void setUp() throws Exception { renewer, new AMRMTokenSecretManager(conf, this.rmContext), new RMContainerTokenSecretManager(conf), new NMTokenSecretManagerInRM(conf), - new ClientToAMTokenSecretManagerInRM(), - writer); + new ClientToAMTokenSecretManagerInRM()); ((RMContextImpl)realRMContext).setStateStore(store); publisher = mock(SystemMetricsPublisher.class); - ((RMContextImpl)realRMContext).setSystemMetricsPublisher(publisher); + realRMContext.setSystemMetricsPublisher(publisher); + realRMContext.setRMApplicationHistoryWriter(writer); this.rmContext = spy(realRMContext); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java index c074ad9e19d..9afb5a908de 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/rmapp/attempt/TestRMAppAttemptTransitions.java @@ -258,14 +258,14 @@ public void setUp() throws Exception { null, amRMTokenManager, new RMContainerTokenSecretManager(conf), nmTokenManager, - clientToAMTokenManager, - writer); + clientToAMTokenManager); store = mock(RMStateStore.class); ((RMContextImpl) rmContext).setStateStore(store); publisher = mock(SystemMetricsPublisher.class); - ((RMContextImpl) rmContext).setSystemMetricsPublisher(publisher); - + rmContext.setSystemMetricsPublisher(publisher); + rmContext.setRMApplicationHistoryWriter(writer); + scheduler = mock(YarnScheduler.class); masterService = mock(ApplicationMasterService.class); applicationMasterLauncher = mock(ApplicationMasterLauncher.class); diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestUtils.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestUtils.java index 9e352a70ccb..b38a497065b 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestUtils.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/TestUtils.java @@ -98,7 +98,7 @@ public EventHandler getEventHandler() { new AMRMTokenSecretManager(conf, null), new RMContainerTokenSecretManager(conf), new NMTokenSecretManagerInRM(conf), - new ClientToAMTokenSecretManagerInRM(), writer); + new ClientToAMTokenSecretManagerInRM()); RMNodeLabelsManager nlm = mock(RMNodeLabelsManager.class); when( nlm.getQueueResource(any(String.class), any(Set.class), @@ -112,8 +112,8 @@ public Resource answer(InvocationOnMock invocation) throws Throwable { when(nlm.getResourceByLabel(any(String.class), any(Resource.class))) .thenAnswer(new Answer() { - @Override - public Resource answer(InvocationOnMock invocation) throws Throwable { + @Override public Resource answer(InvocationOnMock invocation) + throws Throwable { Object[] args = invocation.getArguments(); return (Resource) args[1]; } @@ -121,6 +121,7 @@ public Resource answer(InvocationOnMock invocation) throws Throwable { rmContext.setNodeLabelManager(nlm); rmContext.setSystemMetricsPublisher(mock(SystemMetricsPublisher.class)); + rmContext.setRMApplicationHistoryWriter(mock(RMApplicationHistoryWriter.class)); return rmContext; } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java index 81ad7a7c0dc..a9d7d57a248 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fifo/TestFifoScheduler.java @@ -151,7 +151,7 @@ public void testAppAttemptMetrics() throws Exception { FifoScheduler scheduler = new FifoScheduler(); RMApplicationHistoryWriter writer = mock(RMApplicationHistoryWriter.class); RMContext rmContext = new RMContextImpl(dispatcher, null, - null, null, null, null, null, null, null, writer, scheduler); + null, null, null, null, null, null, null, scheduler); ((RMContextImpl) rmContext).setSystemMetricsPublisher( mock(SystemMetricsPublisher.class)); @@ -197,10 +197,10 @@ public void testNodeLocalAssignment() throws Exception { FifoScheduler scheduler = new FifoScheduler(); RMContext rmContext = new RMContextImpl(dispatcher, null, null, null, null, - null, containerTokenSecretManager, nmTokenSecretManager, null, writer, - scheduler); - ((RMContextImpl) rmContext).setSystemMetricsPublisher( - mock(SystemMetricsPublisher.class)); + null, containerTokenSecretManager, nmTokenSecretManager, null, scheduler); + rmContext.setSystemMetricsPublisher(mock(SystemMetricsPublisher.class)); + rmContext.setRMApplicationHistoryWriter( + mock(RMApplicationHistoryWriter.class)); ((RMContextImpl) rmContext).setYarnConfiguration(new YarnConfiguration()); scheduler.setRMContext(rmContext); @@ -279,10 +279,9 @@ public Map getNodes(){ } }; RMContext rmContext = new RMContextImpl(dispatcher, null, null, null, null, - null, containerTokenSecretManager, nmTokenSecretManager, null, writer, - scheduler); - ((RMContextImpl) rmContext).setSystemMetricsPublisher( - mock(SystemMetricsPublisher.class)); + null, containerTokenSecretManager, nmTokenSecretManager, null, scheduler); + rmContext.setSystemMetricsPublisher(mock(SystemMetricsPublisher.class)); + rmContext.setRMApplicationHistoryWriter(mock(RMApplicationHistoryWriter.class)); ((RMContextImpl) rmContext).setYarnConfiguration(new YarnConfiguration()); scheduler.setRMContext(rmContext);