YARN-9551. TestTimelineClientV2Impl.testSyncCall fails intermittent (#3212)

Co-authored-by: Andras Gyori <gandras@cloudera.com>
(cherry picked from commit b4a524722a)
This commit is contained in:
9uapaw 2021-07-28 04:35:20 +02:00 committed by Szilard Nemeth
parent d661afc06f
commit f001595b47
1 changed files with 24 additions and 12 deletions

View File

@ -248,24 +248,36 @@ public class TestTimelineClientV2Impl {
Thread.sleep(TIME_TO_SLEEP); Thread.sleep(TIME_TO_SLEEP);
} }
printReceivedEntities(); printReceivedEntities();
Assert.assertEquals("TimelineEntities not published as desired", 3,
client.getNumOfTimelineEntitiesPublished()); boolean asyncPushesMerged = client.getNumOfTimelineEntitiesPublished() == 3;
int lastPublishIndex = asyncPushesMerged ? 2 : 3;
TimelineEntities firstPublishedEntities = client.getPublishedEntities(0); TimelineEntities firstPublishedEntities = client.getPublishedEntities(0);
Assert.assertEquals("sync entities should not be merged with async", 1, Assert.assertEquals("sync entities should not be merged with async", 1,
firstPublishedEntities.getEntities().size()); firstPublishedEntities.getEntities().size());
// test before pushing the sync entities asyncs are merged and pushed // async push does not guarantee a merge but is FIFO
TimelineEntities secondPublishedEntities = client.getPublishedEntities(1); if (asyncPushesMerged) {
Assert.assertEquals( TimelineEntities secondPublishedEntities = client.getPublishedEntities(1);
"async entities should be merged before publishing sync", 2, Assert.assertEquals(
secondPublishedEntities.getEntities().size()); "async entities should be merged before publishing sync", 2,
Assert.assertEquals("Order of Async Events Needs to be FIFO", "2", secondPublishedEntities.getEntities().size());
secondPublishedEntities.getEntities().get(0).getId()); Assert.assertEquals("Order of Async Events Needs to be FIFO", "2",
Assert.assertEquals("Order of Async Events Needs to be FIFO", "3", secondPublishedEntities.getEntities().get(0).getId());
secondPublishedEntities.getEntities().get(1).getId()); Assert.assertEquals("Order of Async Events Needs to be FIFO", "3",
secondPublishedEntities.getEntities().get(1).getId());
} else {
TimelineEntities secondAsyncPublish = client.getPublishedEntities(1);
Assert.assertEquals("Order of Async Events Needs to be FIFO", "2",
secondAsyncPublish.getEntities().get(0).getId());
TimelineEntities thirdAsyncPublish = client.getPublishedEntities(2);
Assert.assertEquals("Order of Async Events Needs to be FIFO", "3",
thirdAsyncPublish.getEntities().get(0).getId());
}
// test the last entity published is sync put // test the last entity published is sync put
TimelineEntities thirdPublishedEntities = client.getPublishedEntities(2); TimelineEntities thirdPublishedEntities =
client.getPublishedEntities(lastPublishIndex);
Assert.assertEquals("sync entities had to be published at the last", 1, Assert.assertEquals("sync entities had to be published at the last", 1,
thirdPublishedEntities.getEntities().size()); thirdPublishedEntities.getEntities().size());
Assert.assertEquals("Expected last sync Event is not proper", "4", Assert.assertEquals("Expected last sync Event is not proper", "4",