diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestPrefetchPersistence.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestPrefetchPersistence.java index ac3a1eca8845..620c153895a7 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestPrefetchPersistence.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/io/hfile/bucket/TestPrefetchPersistence.java @@ -41,6 +41,7 @@ import org.apache.hadoop.hbase.regionserver.StoreFileWriter; import org.apache.hadoop.hbase.testclassification.IOTests; import org.apache.hadoop.hbase.testclassification.LargeTests; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.TestTemplate; @@ -127,15 +128,23 @@ public void testPrefetchPersistence() throws Exception { assertTrue(usedSize != 0); assertTrue(bucketCache.fullyCachedFiles.containsKey(storeFile.getName())); assertTrue(bucketCache.fullyCachedFiles.containsKey(storeFile2.getName())); + } + + @AfterEach + public void cleanup() { TEST_UTIL.cleanupTestDir(); } public void readStoreFile(Path storeFilePath) throws Exception { // Open the file HFile.Reader reader = HFile.createReader(fs, storeFilePath, cacheConf, true, conf); - while (!reader.prefetchComplete()) { - // Sleep for a bit - Thread.sleep(1000); + int retries = 0; + while ( + !reader.prefetchComplete() + && !bucketCache.fullyCachedFiles.containsKey(storeFilePath.getName()) && retries < 5 + ) { + Thread.sleep(500); + retries++; } }