Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,8 @@ public void testContainerChecksumForClosedContainer() throws Exception {
// Checksum file exists after container close and matches the expected container
// merkle tree for all the datanodes
for (HddsDatanodeService hddsDatanode : hddsDatanodes) {
GenericTestUtils.waitFor(() -> checkContainerCloseInDatanode(hddsDatanode, containerInfo1), 100, 5000);
assertTrue(containerChecksumFileExists(hddsDatanode, containerInfo1.getContainerID()));
GenericTestUtils.waitFor(() -> checkContainerCloseInDatanode(hddsDatanode, containerInfo1) &&
containerChecksumFileExists(hddsDatanode, containerInfo1.getContainerID()), 100, 5000);
OzoneContainer ozoneContainer = hddsDatanode.getDatanodeStateMachine().getContainer();
Container<?> container1 = ozoneContainer.getController().getContainer(containerInfo1.getContainerID());
ContainerProtos.ContainerChecksumInfo containerChecksumInfo = ContainerMerkleTreeTestUtils.readChecksumFile(
Expand All @@ -256,8 +256,8 @@ public void testContainerChecksumForClosedContainer() throws Exception {
// Checksum file exists after container close and matches the expected container
// merkle tree for all the datanodes
for (HddsDatanodeService hddsDatanode : hddsDatanodes) {
GenericTestUtils.waitFor(() -> checkContainerCloseInDatanode(hddsDatanode, containerInfo2), 100, 5000);
assertTrue(containerChecksumFileExists(hddsDatanode, containerInfo2.getContainerID()));
GenericTestUtils.waitFor(() -> checkContainerCloseInDatanode(hddsDatanode, containerInfo2) &&
containerChecksumFileExists(hddsDatanode, containerInfo2.getContainerID()), 100, 5000);
OzoneContainer ozoneContainer = hddsDatanode.getDatanodeStateMachine().getContainer();
Container<?> container2 = ozoneContainer.getController().getContainer(containerInfo2.getContainerID());
ContainerProtos.ContainerChecksumInfo containerChecksumInfo = ContainerMerkleTreeTestUtils.readChecksumFile(
Expand All @@ -274,12 +274,12 @@ public void testContainerChecksumForClosedContainer() throws Exception {
assertNotEquals(prevExpectedChecksumInfo1.getContainerID(), prevExpectedChecksumInfo2.getContainerID());
assertNotEquals(prevExpectedChecksumInfo1.getContainerMerkleTree().getDataChecksum(),
prevExpectedChecksumInfo2.getContainerMerkleTree().getDataChecksum());
for (ContainerReplica replica : getContainerReplicas(containerInfo1)) {
assertNotEquals(0, replica.getDataChecksum());
}
for (ContainerReplica replica : getContainerReplicas(containerInfo2)) {
assertNotEquals(0, replica.getDataChecksum());
}

// Wait for SCM to receive container reports with non-zero checksums for all replicas
GenericTestUtils.waitFor(() -> getContainerReplicas(containerInfo1).stream()
.allMatch(r -> r.getDataChecksum() != 0), 200, 5000);
GenericTestUtils.waitFor(() -> getContainerReplicas(containerInfo2).stream()
.allMatch(r -> r.getDataChecksum() != 0), 200, 5000);
}

private boolean checkContainerCloseInDatanode(HddsDatanodeService hddsDatanode,
Expand Down