Repository: hadoop Updated Branches: refs/heads/trunk c467f311d -> d919eb6ef
YARN-8116. Nodemanager fails with NumberFormatException: For input string: . (Chandni Singh via wangda) Change-Id: Idd30cfca59982d3fc6e47aa1b88f844a78fae94d Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/2bf9cc2c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/2bf9cc2c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/2bf9cc2c Branch: refs/heads/trunk Commit: 2bf9cc2c73944c9f7cde56714b8cf6995cfa539b Parents: c467f31 Author: Wangda Tan <wan...@apache.org> Authored: Tue Apr 10 17:32:38 2018 -0700 Committer: Wangda Tan <wan...@apache.org> Committed: Tue Apr 10 17:32:38 2018 -0700 ---------------------------------------------------------------------- .../containermanager/container/ContainerImpl.java | 3 ++- .../recovery/NMLeveldbStateStoreService.java | 4 +++- .../recovery/TestNMLeveldbStateStoreService.java | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/2bf9cc2c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java ---------------------------------------------------------------------- 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/container/ContainerImpl.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java index 2115100..c09c7f1 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/container/ContainerImpl.java @@ -2191,7 +2191,8 @@ public class ContainerImpl implements Container { } private void storeRetryContext() { - if (windowRetryContext.getRestartTimes() != null) { + if (windowRetryContext.getRestartTimes() != null && + !windowRetryContext.getRestartTimes().isEmpty()) { try { stateStore.storeContainerRestartTimes(containerId, windowRetryContext.getRestartTimes()); http://git-wip-us.apache.org/repos/asf/hadoop/blob/2bf9cc2c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java index bf4c0ad..723dd48 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/recovery/NMLeveldbStateStoreService.java @@ -347,7 +347,9 @@ public class NMLeveldbStateStoreService extends NMStateStoreService { value.substring(1, value.length() - 1).split(", "); List<Long> restartTimes = new ArrayList<>(); for (String restartTime : unparsedRestartTimes) { - restartTimes.add(Long.parseLong(restartTime)); + if (!restartTime.isEmpty()) { + restartTimes.add(Long.parseLong(restartTime)); + } } rcs.setRestartTimes(restartTimes); } else if (suffix.equals(CONTAINER_WORK_DIR_KEY_SUFFIX)) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/2bf9cc2c/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/recovery/TestNMLeveldbStateStoreService.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/recovery/TestNMLeveldbStateStoreService.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/recovery/TestNMLeveldbStateStoreService.java index c270199..265b3e6 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/recovery/TestNMLeveldbStateStoreService.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/recovery/TestNMLeveldbStateStoreService.java @@ -1216,6 +1216,22 @@ public class TestNMLeveldbStateStoreService { Assert.fail("Expected exception not thrown"); } + @Test + public void testEmptyRestartTimes() throws IOException { + List<Long> restartTimes = new ArrayList<>(); + ApplicationId appId = ApplicationId.newInstance(1234, 3); + ApplicationAttemptId appAttemptId = ApplicationAttemptId.newInstance(appId, + 4); + ContainerId containerId = ContainerId.newContainerId(appAttemptId, 5); + storeMockContainer(containerId); + stateStore.storeContainerRestartTimes(containerId, + restartTimes); + restartStateStore(); + RecoveredContainerState rcs = stateStore.loadContainersState().get(0); + List<Long> recoveredRestartTimes = rcs.getRestartTimes(); + assertTrue(recoveredRestartTimes.isEmpty()); + } + private StartContainerRequest storeMockContainer(ContainerId containerId) throws IOException { // create a container request --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org