You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sn...@apache.org on 2023/01/25 14:14:52 UTC
[hadoop] branch trunk updated: YARN-5607. Document TestContainerResourceUsage#waitForContainerCompletion. Contributed by Susheel Gupta
This is an automated email from the ASF dual-hosted git repository.
snemeth pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new 29f2230cb61 YARN-5607. Document TestContainerResourceUsage#waitForContainerCompletion. Contributed by Susheel Gupta
29f2230cb61 is described below
commit 29f2230cb615b975950691044a621ff008088cf5
Author: Szilard Nemeth <sn...@apache.org>
AuthorDate: Wed Jan 25 15:13:24 2023 +0100
YARN-5607. Document TestContainerResourceUsage#waitForContainerCompletion. Contributed by Susheel Gupta
---
.../hadoop/yarn/server/resourcemanager/MockRM.java | 25 ++++++++++++++++++++++
.../TestContainerResourceUsage.java | 18 ++--------------
2 files changed, 27 insertions(+), 16 deletions(-)
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
index 95db1171b35..316f8e06cb5 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/MockRM.java
@@ -1011,6 +1011,31 @@ public class MockRM extends ResourceManager {
LOG.info("app is removed from scheduler, " + appId);
}
+ /**
+ * Wait until a container has reached a completion state.
+ * The timeout is 20 seconds.
+ * @param nm A mock nodemanager
+ * @param rm A mock resourcemanager
+ * @param amContainerId The id of an am container
+ * @param container A container
+ * @throws Exception
+ * if interrupted while waiting for the completion transition
+ * or an unexpected error while MockNM is hearbeating.
+ */
+ public static void waitForContainerCompletion(MockRM rm, MockNM nm,
+ ContainerId amContainerId, RMContainer container) throws Exception {
+ ContainerId containerId = container.getContainerId();
+ if (null != rm.scheduler.getRMContainer(containerId)) {
+ if (containerId.equals(amContainerId)) {
+ rm.waitForState(nm, containerId, RMContainerState.COMPLETED);
+ } else {
+ rm.waitForState(nm, containerId, RMContainerState.KILLED);
+ }
+ } else {
+ rm.drainEvents();
+ }
+ }
+
private void drainEventsImplicitly() {
if (!disableDrainEventsImplicitly) {
drainEvents();
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java
index 9a01087ce3a..54fd6509647 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/TestContainerResourceUsage.java
@@ -348,7 +348,7 @@ public class TestContainerResourceUsage {
// If keepRunningContainers is false, all live containers should now
// be completed. Calculate the resource usage metrics for all of them.
for (RMContainer c : rmContainers) {
- waitforContainerCompletion(rm, nm, amContainerId, c);
+ MockRM.waitForContainerCompletion(rm, nm, amContainerId, c);
AggregateAppResourceUsage ru = calculateContainerResourceMetrics(c);
memorySeconds += ru.getMemorySeconds();
vcoreSeconds += ru.getVcoreSeconds();
@@ -400,7 +400,7 @@ public class TestContainerResourceUsage {
// Calculate container usage metrics for second attempt.
for (RMContainer c : rmContainers) {
- waitforContainerCompletion(rm, nm, amContainerId, c);
+ MockRM.waitForContainerCompletion(rm, nm, amContainerId, c);
AggregateAppResourceUsage ru = calculateContainerResourceMetrics(c);
memorySeconds += ru.getMemorySeconds();
vcoreSeconds += ru.getVcoreSeconds();
@@ -417,20 +417,6 @@ public class TestContainerResourceUsage {
return;
}
- private void waitforContainerCompletion(MockRM rm, MockNM nm,
- ContainerId amContainerId, RMContainer container) throws Exception {
- ContainerId containerId = container.getContainerId();
- if (null != rm.scheduler.getRMContainer(containerId)) {
- if (containerId.equals(amContainerId)) {
- rm.waitForState(nm, containerId, RMContainerState.COMPLETED);
- } else {
- rm.waitForState(nm, containerId, RMContainerState.KILLED);
- }
- } else {
- rm.drainEvents();
- }
- }
-
private AggregateAppResourceUsage calculateContainerResourceMetrics(
RMContainer rmContainer) {
Resource resource = rmContainer.getContainer().getResource();
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org