HDDS-347. TestCloseContainerByPipeline#testCloseContainerViaStandaAlone sometimes fails. Contributed by Lixin Ge.

This commit is contained in:
Xiaoyu Yao 2018-08-15 08:10:08 -07:00
parent 8dc07b4723
commit f2315f2e9c

View File

@ -182,9 +182,11 @@ public void testCloseContainerViaStandAlone()
new CloseContainerCommand(containerID,
HddsProtos.ReplicationType.STAND_ALONE, pipeline.getId()));
GenericTestUtils
.waitFor(() -> isContainerClosed(cluster, containerID, datanodeDetails),
500, 5 * 1000);
// The log will appear after the state changed to closed in standalone,
// wait for the log to ensure the operation has been done.
GenericTestUtils.waitFor(() -> logCapturer.getOutput().contains(
"submitting CloseContainer request over STAND_ALONE server for"
+ " container " + containerID), 500, 5 * 1000);
//double check if it's really closed (waitFor also throws an exception)
Assert.assertTrue(isContainerClosed(cluster, containerID, datanodeDetails));
@ -260,7 +262,7 @@ private Boolean isContainerClosed(MiniOzoneCluster cluster, long containerID,
containerData =
datanodeService.getDatanodeStateMachine().getContainer()
.getContainerSet().getContainer(containerID).getContainerData();
return !containerData.isOpen();
return containerData.isClosed();
}
return false;
}