Skip to content

Commit fab16d7

Browse files
Fix flaky RemoteFSTranslogTests testMetadataFileDeletion test #9605 (#11899) (#11915)
(cherry picked from commit 904c9a9) Signed-off-by: Ashish Singh <ssashish@amazon.com> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent ed80008 commit fab16d7

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

server/src/test/java/org/opensearch/index/translog/RemoteFsTranslogTests.java

+11-2
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@
8686
import java.util.Set;
8787
import java.util.concurrent.ArrayBlockingQueue;
8888
import java.util.concurrent.BlockingQueue;
89-
import java.util.concurrent.BrokenBarrierException;
9089
import java.util.concurrent.CopyOnWriteArrayList;
9190
import java.util.concurrent.CountDownLatch;
9291
import java.util.concurrent.CyclicBarrier;
@@ -715,6 +714,7 @@ public void testSimpleOperationsUpload() throws Exception {
715714
translog.setMinSeqNoToKeep(0);
716715
// This should not trim anything from local
717716
translog.trimUnreferencedReaders();
717+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
718718
assertEquals(2, translog.readers.size());
719719
assertBusy(() -> {
720720
assertEquals(4, translog.allUploaded().size());
@@ -728,6 +728,7 @@ public void testSimpleOperationsUpload() throws Exception {
728728
// This should not trim tlog-2.* files from remote as we not uploading any more translog to remote
729729
translog.setMinSeqNoToKeep(1);
730730
translog.trimUnreferencedReaders();
731+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
731732
assertEquals(1, translog.readers.size());
732733
assertBusy(() -> {
733734
assertEquals(4, translog.allUploaded().size());
@@ -766,6 +767,7 @@ public void testMetadataFileDeletion() throws Exception {
766767
addToTranslogAndListAndUpload(translog, ops, new Translog.Index(String.valueOf(i), i, primaryTerm.get(), new byte[] { 1 }));
767768
translog.setMinSeqNoToKeep(i);
768769
translog.trimUnreferencedReaders();
770+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
769771
assertEquals(1, translog.readers.size());
770772
}
771773
assertBusy(() -> assertEquals(4, translog.allUploaded().size()));
@@ -776,13 +778,15 @@ public void testMetadataFileDeletion() throws Exception {
776778
addToTranslogAndListAndUpload(translog, ops, new Translog.Index(String.valueOf(i), i, primaryTerm.get(), new byte[] { 1 }));
777779
}
778780
translog.trimUnreferencedReaders();
781+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
779782
assertEquals(1 + moreDocs, translog.readers.size());
780783
assertBusy(() -> assertEquals(2 + 2L * moreDocs, translog.allUploaded().size()));
781784
assertBusy(() -> assertEquals(1, blobStoreTransferService.listAll(getTranslogDirectory().add(METADATA_DIR)).size()));
782785

783786
int totalDocs = numDocs + moreDocs;
784787
translog.setMinSeqNoToKeep(totalDocs - 1);
785788
translog.trimUnreferencedReaders();
789+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
786790

787791
addToTranslogAndListAndUpload(
788792
translog,
@@ -791,6 +795,7 @@ public void testMetadataFileDeletion() throws Exception {
791795
);
792796
translog.setMinSeqNoToKeep(totalDocs);
793797
translog.trimUnreferencedReaders();
798+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
794799
assertBusy(() -> assertEquals(1, blobStoreTransferService.listAll(getTranslogDirectory().add(METADATA_DIR)).size()));
795800

796801
// Change primary term and test the deletion of older primaries
@@ -841,6 +846,7 @@ public void testDrainSync() throws Exception {
841846

842847
translog.setMinSeqNoToKeep(0);
843848
translog.trimUnreferencedReaders();
849+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
844850
assertEquals(1, translog.readers.size());
845851

846852
// Case 1 - During ongoing uploads, the available permits are 0.
@@ -869,6 +875,7 @@ public void testDrainSync() throws Exception {
869875
// Case 3 - After drainSync, if trimUnreferencedReaders is attempted, we do not delete from remote store.
870876
translog.setMinSeqNoToKeep(1);
871877
translog.trimUnreferencedReaders();
878+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
872879
assertEquals(1, translog.readers.size());
873880
assertEquals(6, translog.allUploaded().size());
874881
assertEquals(mdFiles, blobStoreTransferService.listAll(getTranslogDirectory().add(METADATA_DIR)));
@@ -892,6 +899,7 @@ public void testDrainSync() throws Exception {
892899

893900
translog.setMinSeqNoToKeep(3);
894901
translog.trimUnreferencedReaders();
902+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
895903
assertEquals(1, translog.readers.size());
896904
assertBusy(() -> assertEquals(4, translog.allUploaded().size()));
897905
assertBusy(() -> assertEquals(1, blobStoreTransferService.listAll(getTranslogDirectory().add(METADATA_DIR)).size()));
@@ -1048,7 +1056,7 @@ public void testConcurrentWriteViewsAndSnapshot() throws Throwable {
10481056
final int threadId = i;
10491057
writers[i] = new Thread(new AbstractRunnable() {
10501058
@Override
1051-
public void doRun() throws BrokenBarrierException, InterruptedException, IOException {
1059+
public void doRun() throws Exception {
10521060
barrier.await();
10531061
int counter = 0;
10541062
while (run.get() && idGenerator.get() < maxOps) {
@@ -1090,6 +1098,7 @@ public void doRun() throws BrokenBarrierException, InterruptedException, IOExcep
10901098
// deletionPolicy.setLocalCheckpointOfSafeCommit(localCheckpoint);
10911099
translog.setMinSeqNoToKeep(localCheckpoint + 1);
10921100
translog.trimUnreferencedReaders();
1101+
assertBusy(() -> assertTrue(translog.isRemoteGenerationDeletionPermitsAvailable()));
10931102
}
10941103
}
10951104
if (id % 7 == 0) {

0 commit comments

Comments
 (0)