[hadoop] branch branch-2.10 updated: YARN-8222. Fix potential NPE when gets RMApp from RM context. Contributed by Tao Yang.

2021-10-12 Thread epayne
This is an automated email from the ASF dual-hosted git repository.

epayne pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-2.10 by this push:
 new 5f2047d  YARN-8222. Fix potential NPE when gets RMApp from RM context. 
Contributed by Tao Yang.
5f2047d is described below

commit 5f2047d491f3e168326257cc63e2cb5b0ddbcd6a
Author: Weiwei Yang 
AuthorDate: Wed May 2 17:54:46 2018 +0800

YARN-8222. Fix potential NPE when gets RMApp from RM context. Contributed 
by Tao Yang.

(cherry picked from commit 251f528814c4a4647cac0af6effb9a73135db180)
---
 .../rmcontainer/RMContainerImpl.java   | 30 --
 .../scheduler/SchedulerApplicationAttempt.java | 13 +-
 2 files changed, 23 insertions(+), 20 deletions(-)

diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java
index 76933f1..3c85df9 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/rmcontainer/RMContainerImpl.java
@@ -45,6 +45,7 @@ import org.apache.hadoop.yarn.event.EventHandler;
 import org.apache.hadoop.yarn.server.api.protocolrecords.NMContainerStatus;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
 import 
org.apache.hadoop.yarn.server.resourcemanager.nodelabels.RMNodeLabelsManager;
+import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMAppRunningOnNodeEvent;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttempt;
 import 
org.apache.hadoop.yarn.server.resourcemanager.rmapp.attempt.RMAppAttemptEvent;
@@ -709,21 +710,22 @@ public class RMContainerImpl implements RMContainer {
 private static void updateAttemptMetrics(RMContainerImpl container) {
   // If this is a preempted container, update preemption metrics
   Resource resource = container.getContainer().getResource();
-  RMAppAttempt rmAttempt = container.rmContext.getRMApps()
-  .get(container.getApplicationAttemptId().getApplicationId())
-  .getCurrentAppAttempt();
-
-  if (rmAttempt != null) {
-long usedMillis = container.finishTime - container.creationTime;
-rmAttempt.getRMAppAttemptMetrics()
-.updateAggregateAppResourceUsage(resource, usedMillis);
-// If this is a preempted container, update preemption metrics
-if (ContainerExitStatus.PREEMPTED == container.finishedStatus
-.getExitStatus()) {
+  RMApp app = container.rmContext.getRMApps()
+  .get(container.getApplicationAttemptId().getApplicationId());
+  if (app != null) {
+RMAppAttempt rmAttempt = app.getCurrentAppAttempt();
+if (rmAttempt != null) {
+  long usedMillis = container.finishTime - container.creationTime;
   rmAttempt.getRMAppAttemptMetrics()
-  .updatePreemptionInfo(resource, container);
-  rmAttempt.getRMAppAttemptMetrics()
-  .updateAggregatePreemptedAppResourceUsage(resource, usedMillis);
+  .updateAggregateAppResourceUsage(resource, usedMillis);
+  // If this is a preempted container, update preemption metrics
+  if (ContainerExitStatus.PREEMPTED == container.finishedStatus
+  .getExitStatus()) {
+rmAttempt.getRMAppAttemptMetrics()
+.updatePreemptionInfo(resource, container);
+rmAttempt.getRMAppAttemptMetrics()
+.updateAggregatePreemptedAppResourceUsage(resource, 
usedMillis);
+  }
 }
   }
 }
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java
index 5e85047..0b01024 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerApplicationAttempt.java
+++ 

[hadoop] branch branch-3.3 updated: YARN-10869. CS considers only the default maximum-allocation-mb/vcore property as a maximum when it creates dynamic queues (#3504)

2021-10-12 Thread snemeth
This is an automated email from the ASF dual-hosted git repository.

snemeth pushed a commit to branch branch-3.3
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-3.3 by this push:
 new 7000458  YARN-10869. CS considers only the default 
maximum-allocation-mb/vcore property as a maximum when it creates dynamic 
queues (#3504)
7000458 is described below

commit 700045896c6175913d9071c132b533871dcbc20e
Author: Benjamin Teke 
AuthorDate: Tue Oct 12 18:05:50 2021 +0200

YARN-10869. CS considers only the default maximum-allocation-mb/vcore 
property as a maximum when it creates dynamic queues (#3504)

Co-authored-by: Benjamin Teke 
---
 .../scheduler/capacity/AbstractCSQueue.java| 50 --
 .../capacity/CapacitySchedulerConfiguration.java   | 14 ++
 .../TestCapacitySchedulerAutoCreatedQueueBase.java | 32 --
 .../TestCapacitySchedulerAutoQueueCreation.java| 33 +-
 4 files changed, 102 insertions(+), 27 deletions(-)

diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AbstractCSQueue.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AbstractCSQueue.java
index fda5e16..e7d9fa5 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AbstractCSQueue.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/AbstractCSQueue.java
@@ -100,7 +100,7 @@ public abstract class AbstractCSQueue implements CSQueue {
   String defaultLabelExpression;
   private String multiNodeSortingPolicyName = null;
 
-  Map acls = 
+  Map acls =
   new HashMap();
   volatile boolean reservationsContinueLooking;
   private volatile boolean preemptionDisabled;
@@ -112,7 +112,7 @@ public abstract class AbstractCSQueue implements CSQueue {
   volatile ResourceUsage queueUsage;
 
   private final boolean fullPathQueueNamingPolicy = false;
-  
+
   // Track capacities like 
used-capcity/abs-used-capacity/capacity/abs-capacity,
   // etc.
   QueueCapacities queueCapacities;
@@ -134,7 +134,7 @@ public abstract class AbstractCSQueue implements CSQueue {
   protected CapacityConfigType capacityConfigType =
   CapacityConfigType.NONE;
 
-  private final RecordFactory recordFactory = 
+  private final RecordFactory recordFactory =
   RecordFactoryProvider.getRecordFactory(null);
   protected CapacitySchedulerContext csContext;
   protected YarnAuthorizationProvider authorizer = null;
@@ -250,12 +250,12 @@ public abstract class AbstractCSQueue implements CSQueue {
   public QueueState getState() {
 return state;
   }
-  
+
   @Override
   public CSQueueMetrics getMetrics() {
 return metrics;
   }
-  
+
   @Override
   public String getQueueShortName() {
 return queueName;
@@ -283,7 +283,7 @@ public abstract class AbstractCSQueue implements CSQueue {
   public void setParent(CSQueue newParentQueue) {
 this.parent = newParentQueue;
   }
-  
+
   public Set getAccessibleNodeLabels() {
 return accessibleLabels;
   }
@@ -344,7 +344,7 @@ public abstract class AbstractCSQueue implements CSQueue {
   public String getDefaultNodeLabelExpression() {
 return defaultLabelExpression;
   }
-  
+
   void setupQueueConfigs(Resource clusterResource)
   throws IOException {
 setupQueueConfigs(clusterResource, csContext.getConfiguration());
@@ -471,8 +471,14 @@ public abstract class AbstractCSQueue implements CSQueue {
 
   private void setupMaximumAllocation(CapacitySchedulerConfiguration csConf) {
 String myQueuePath = getQueuePath();
+/* YARN-10869: When using AutoCreatedLeafQueues, the passed configuration
+* object is a cloned one containing only the template configs
+* (see ManagedParentQueue#getLeafQueueConfigs). To ensure that the actual
+* cluster maximum allocation is fetched the original config object should
+* be used.
+*/
 Resource clusterMax = ResourceUtils
-.fetchMaximumAllocationFromConfig(csConf);
+.fetchMaximumAllocationFromConfig(this.csContext.getConfiguration());
 Resource queueMax = csConf.getQueueMaximumAllocation(myQueuePath);
 
 maximumAllocation = Resources.clone(
@@ -740,7 +746,7 @@ public abstract class AbstractCSQueue implements CSQueue {
 stats.setReservedContainers(getMetrics().getReservedContainers());
 return stats;
   }
-  
+
   public Map getQueueConfigurations() {
 Map queueConfigurations = new HashMap<>();
 Set nodeLabels = getNodeLabelsForQueue();
@@ -776,12 +782,12 @@ public abstract class 

[hadoop] branch branch-2.10 updated: HADOOP-17964. Increase Java heap size for running Maven in Dockerfile of branch-2.10. (#3545)

2021-10-12 Thread iwasakims
This is an automated email from the ASF dual-hosted git repository.

iwasakims pushed a commit to branch branch-2.10
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/branch-2.10 by this push:
 new b8dc05e  HADOOP-17964. Increase Java heap size for running Maven in 
Dockerfile of branch-2.10. (#3545)
b8dc05e is described below

commit b8dc05efcd1450f94c930fa6c1c794e0e2421037
Author: Masatake Iwasaki 
AuthorDate: Wed Oct 13 00:53:03 2021 +0900

HADOOP-17964. Increase Java heap size for running Maven in Dockerfile of 
branch-2.10. (#3545)
---
 dev-support/docker/Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile
index 24c36f0..cf163d9e 100644
--- a/dev-support/docker/Dockerfile
+++ b/dev-support/docker/Dockerfile
@@ -203,7 +203,7 @@ RUN curl -L -s -S \
 ###
 # Avoid out of memory errors in builds
 ###
-ENV MAVEN_OPTS -Xms256m -Xmx1536m -Dhttps.protocols=TLSv1.2 
-Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
+ENV MAVEN_OPTS -Xms256m -Xmx2048m -XX:MaxPermSize=512m 
-Dhttps.protocols=TLSv1.2 
-Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
 
 
 ###

-
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org



[hadoop] branch trunk updated: YARN-6862. Nodemanager resource usage metrics sometimes are negative. Contributed by Benjamin Teke

2021-10-12 Thread snemeth
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 8c271ca  YARN-6862. Nodemanager resource usage metrics sometimes are 
negative. Contributed by Benjamin Teke
8c271ca is described below

commit 8c271caa81db683fe4b92853bd8ca5da060e6593
Author: Szilard Nemeth 
AuthorDate: Tue Oct 12 17:32:40 2021 +0200

YARN-6862. Nodemanager resource usage metrics sometimes are negative. 
Contributed by Benjamin Teke
---
 .../monitor/ContainersMonitorImpl.java |  8 
 .../MockCPUResourceCalculatorProcessTree.java  | 10 +
 ...> MockMemoryResourceCalculatorProcessTree.java} | 47 +++---
 .../monitor/MockResourceCalculatorProcessTree.java |  6 +++
 .../TestContainersMonitorResourceChange.java   | 24 ---
 5 files changed, 75 insertions(+), 20 deletions(-)

diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/ContainersMonitorImpl.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/ContainersMonitorImpl.java
index a83ae3a..deccded 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/ContainersMonitorImpl.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/ContainersMonitorImpl.java
@@ -537,6 +537,14 @@ public class ContainersMonitorImpl extends AbstractService 
implements
 pTree.updateProcessTree();// update process-tree
 long currentVmemUsage = pTree.getVirtualMemorySize();
 long currentPmemUsage = pTree.getRssMemorySize();
+if (currentVmemUsage < 0 || currentPmemUsage < 0) {
+  // YARN-6862/YARN-5021 If the container just exited or for
+  // another reason the physical/virtual memory is UNAVAILABLE (-1)
+  // the values shouldn't be aggregated.
+  LOG.info("Skipping monitoring container {} because "
+  + "memory usage is not available.", containerId);
+  continue;
+}
 
 // if machine has 6 cores and 3 are used,
 // cpuUsagePercentPerCore should be 300%
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockCPUResourceCalculatorProcessTree.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockCPUResourceCalculatorProcessTree.java
index eb35c91..49161f3 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockCPUResourceCalculatorProcessTree.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockCPUResourceCalculatorProcessTree.java
@@ -57,6 +57,16 @@ public class MockCPUResourceCalculatorProcessTree
   }
 
   @Override
+  public long getVirtualMemorySize(int olderThanAge) {
+return 0;
+  }
+
+  @Override
+  public long getRssMemorySize(int olderThanAge) {
+return 0;
+  }
+
+  @Override
   public float getCpuUsagePercent() {
 long cpu = this.cpuPercentage;
 // First getter call will be returned with -1, and other calls will
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockCPUResourceCalculatorProcessTree.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockMemoryResourceCalculatorProcessTree.java
similarity index 50%
copy from 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockCPUResourceCalculatorProcessTree.java
copy to 
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/MockMemoryResourceCalculatorProcessTree.java
index eb35c91..ea45ac4 100644
---