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 aa...@apache.org on 2019/01/15 04:02:17 UTC
[hadoop] branch trunk updated: YARN-9179. Fix NPE in
AbstractYarnScheduler#updateNewContainerInfo.
This is an automated email from the ASF dual-hosted git repository.
aajisaka 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 614af50 YARN-9179. Fix NPE in AbstractYarnScheduler#updateNewContainerInfo.
614af50 is described below
commit 614af50625a8495812dce8da59db0e1aef40b1c0
Author: Akira Ajisaka <aa...@apache.org>
AuthorDate: Tue Jan 15 12:59:59 2019 +0900
YARN-9179. Fix NPE in AbstractYarnScheduler#updateNewContainerInfo.
---
.../scheduler/AbstractYarnScheduler.java | 27 ++++++++++++++--------
1 file changed, 17 insertions(+), 10 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/AbstractYarnScheduler.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java
index 0ad47bb..a798b97 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/scheduler/AbstractYarnScheduler.java
@@ -1040,20 +1040,27 @@ public abstract class AbstractYarnScheduler
for (Map.Entry<ApplicationId, ContainerStatus> c : updateExistContainers) {
SchedulerApplication<T> app = applications.get(c.getKey());
ContainerId containerId = c.getValue().getContainerId();
+ if (app == null || app.getCurrentAppAttempt() == null) {
+ continue;
+ }
+ RMContainer rmContainer
+ = app.getCurrentAppAttempt().getRMContainer(containerId);
+ if (rmContainer == null) {
+ continue;
+ }
+ // exposed ports are already set for the container, skip
+ if (rmContainer.getExposedPorts() != null &&
+ rmContainer.getExposedPorts().size() > 0) {
+ continue;
+ }
+
String strExposedPorts = c.getValue().getExposedPorts();
- Map<String, List<Map<String, String>>> exposedPorts = null;
if (null != strExposedPorts && !strExposedPorts.isEmpty()) {
Gson gson = new Gson();
- exposedPorts = gson.fromJson(strExposedPorts,
+ Map<String, List<Map<String, String>>> exposedPorts =
+ gson.fromJson(strExposedPorts,
new TypeToken<Map<String, List<Map<String, String>>>>()
- {}.getType());
- }
-
- RMContainer rmContainer
- = app.getCurrentAppAttempt().getRMContainer(containerId);
- if (null != rmContainer &&
- (null == rmContainer.getExposedPorts()
- || rmContainer.getExposedPorts().size() == 0)) {
+ {}.getType());
LOG.info("update exist container " + containerId.getContainerId()
+ ", strExposedPorts = " + strExposedPorts);
rmContainer.setExposedPorts(exposedPorts);
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org