Repository: hadoop Updated Branches: refs/heads/branch-2 ba3257baf -> 42feab243
YARN-5537. Fix intermittent failure of TestAMRMClient#testAMRMClientWithContainerResourceChange (Bibin A Chundatt via Varun Saxena) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/42feab24 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/42feab24 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/42feab24 Branch: refs/heads/branch-2 Commit: 42feab243614979bc708cbb3fa46f807d7ddd344 Parents: ba3257b Author: Varun Saxena <varunsax...@apache.org> Authored: Thu Aug 25 14:12:28 2016 +0530 Committer: Varun Saxena <varunsax...@apache.org> Committed: Thu Aug 25 14:12:28 2016 +0530 ---------------------------------------------------------------------- .../yarn/client/api/impl/TestAMRMClient.java | 47 +++++++++++--------- 1 file changed, 27 insertions(+), 20 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/42feab24/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java index 57cdbfb..1eeeb78 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java @@ -1007,26 +1007,33 @@ public class TestAMRMClient { Assert.assertEquals(2, amClientImpl.pendingChange.size()); // as of now: container1 asks to decrease to (512, 1) // container2 asks to increase to (2048, 1) - // send allocation requests - AllocateResponse allocResponse = amClient.allocate(0.1f); - Assert.assertEquals(0, amClientImpl.change.size()); - // we should get decrease confirmation right away - List<Container> decreasedContainers = - allocResponse.getDecreasedContainers(); - List<Container> increasedContainers = - allocResponse.getIncreasedContainers(); - Assert.assertEquals(1, decreasedContainers.size()); - Assert.assertEquals(0, increasedContainers.size()); - // we should get increase allocation after the next NM's heartbeat to RM - sleep(150); - // get allocations - allocResponse = amClient.allocate(0.1f); - decreasedContainers = - allocResponse.getDecreasedContainers(); - increasedContainers = - allocResponse.getIncreasedContainers(); - Assert.assertEquals(1, increasedContainers.size()); - Assert.assertEquals(0, decreasedContainers.size()); + List<Container> decreasedContainers; + List<Container> increasedContainers; + int allocateAttempts = 0; + int decreased = 0; + int increased = 0; + while (allocateAttempts < 30) { + // send allocation requests + AllocateResponse allocResponse = amClient.allocate(0.1f); + decreasedContainers = allocResponse.getDecreasedContainers(); + increasedContainers = allocResponse.getIncreasedContainers(); + decreased += decreasedContainers.size(); + increased += increasedContainers.size(); + if (allocateAttempts == 0) { + // we should get decrease confirmation right away + Assert.assertEquals(1, decreased); + // After first allocate request check change size + Assert.assertEquals(0, amClientImpl.change.size()); + } else if (increased == 1) { + break; + } + // increase request is served after next NM heart beat is received + // Sleeping and retrying allocate + sleep(20); + allocateAttempts++; + } + Assert.assertEquals(1, decreased); + Assert.assertEquals(1, increased); } private void testAllocation(final AMRMClientImpl<ContainerRequest> amClient) --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org