[
https://issues.apache.org/jira/browse/YARN-6536?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15988891#comment-15988891
]
Jason Lowe commented on YARN-6536:
----------------------------------
This is the assertion that is failing:
{code}
assertEquals(2, amClient.release.size());
{code}
The problem is that the code above is doing this:
{code}
while (allocatedContainerCount < containersRequestedAny
&& iterationsLeft-- > 0) {
AllocateResponse allocResponse = amClient.allocate(0.1f);
assertEquals(0, amClient.ask.size());
assertEquals(0, amClient.release.size());
assertEquals(nodeCount, amClient.getClusterNodeCount());
allocatedContainerCount += allocResponse.getAllocatedContainers().size();
for(Container container : allocResponse.getAllocatedContainers()) {
ContainerId rejectContainerId = container.getId();
releases.add(rejectContainerId);
amClient.releaseAssignedContainer(rejectContainerId);
}
[...]
{code}
If it takes more than one iteration to get two containers allocated then
amClient.release will be 1 instead of 2 and the test will fail. Part of the
problem here is that it's using a full-blown minicluster and doing hacky
100msec sleeps in hopes that the node heartbeats in the interim. Having the
test wield something like a MockRM and MockNM that it can explicitly control
the heartbeats relative to allocate calls would make this test more
deterministic (and faster).
Minimally the test should be checking {{releases.size()}} to see if all of the
containers were released across the iterations rather than
{{amClient.release.size()}}.
> TestAMRMClient.testAMRMClientWithSaslEncryption fails intermittently
> --------------------------------------------------------------------
>
> Key: YARN-6536
> URL: https://issues.apache.org/jira/browse/YARN-6536
> Project: Hadoop YARN
> Issue Type: Bug
> Affects Versions: 2.8.1
> Reporter: Eric Badger
>
> {noformat}
> java.lang.AssertionError: expected:<2> but was:<1>
> at org.junit.Assert.fail(Assert.java:88)
> at org.junit.Assert.failNotEquals(Assert.java:743)
> at org.junit.Assert.assertEquals(Assert.java:118)
> at org.junit.Assert.assertEquals(Assert.java:555)
> at org.junit.Assert.assertEquals(Assert.java:542)
> at
> org.apache.hadoop.yarn.client.api.impl.TestAMRMClient.testAllocation(TestAMRMClient.java:1005)
> at
> org.apache.hadoop.yarn.client.api.impl.TestAMRMClient.registerAndAllocate(TestAMRMClient.java:703)
> at
> org.apache.hadoop.yarn.client.api.impl.TestAMRMClient.testAMRMClientWithSaslEncryption(TestAMRMClient.java:675)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]