@@ -39,6 +39,8 @@ import org.mockito.invocation.InvocationOnMock
3939import org .mockito .stubbing .Answer
4040import org .roaringbitmap .RoaringBitmap
4141import org .scalatest .PrivateMethodTester
42+ import org .scalatest .concurrent .Eventually
43+ import org .scalatest .time .SpanSugar .convertIntToGrainOfTime
4244
4345import org .apache .spark .{MapOutputTracker , SparkFunSuite , TaskContext }
4446import org .apache .spark .MapOutputTracker .SHUFFLE_PUSH_MAP_ID
@@ -52,7 +54,8 @@ import org.apache.spark.storage.ShuffleBlockFetcherIterator._
5254import org .apache .spark .util .Utils
5355
5456
55- class ShuffleBlockFetcherIteratorSuite extends SparkFunSuite with PrivateMethodTester {
57+ class ShuffleBlockFetcherIteratorSuite extends SparkFunSuite with Eventually
58+ with PrivateMethodTester {
5659
5760 private var transfer : BlockTransferService = _
5861 private var mapOutputTracker : MapOutputTracker = _
@@ -361,6 +364,10 @@ class ShuffleBlockFetcherIteratorSuite extends SparkFunSuite with PrivateMethodT
361364 verify(blockManager, times(3 )).getLocalBlockData(any())
362365
363366 // 2 fallback storage blocks fetched in initialization
367+ // initialize creates futures that eventually call into getFallbackStorageBlockData
368+ eventually(timeout(1 .seconds), interval(10 .millis)) {
369+ assert(iterator.fallbackStorageReadPool.getCompletedTaskCount >= 2 )
370+ }
364371 verify(blockManager, times(2 )).getFallbackStorageBlockData(any())
365372 // SPARK-55469: but buffer data have never been materialized
366373 fallbackBlocks.values.foreach { mockBuf =>
@@ -552,6 +559,10 @@ class ShuffleBlockFetcherIteratorSuite extends SparkFunSuite with PrivateMethodT
552559 verify(blockManager, times(1 )).getLocalBlockData(any())
553560
554561 // 1 fallback merge block fetched in initialization
562+ // initialize creates futures that eventually call into getFallbackStorageBlockData
563+ eventually(timeout(1 .seconds), interval(10 .millis)) {
564+ assert(iterator.fallbackStorageReadPool.getCompletedTaskCount >= 1 )
565+ }
555566 verify(blockManager, times(1 )).getFallbackStorageBlockData(any())
556567 // SPARK-55469: but buffer data have never been materialized
557568 mergedFallbackBlocks.values.foreach { mockBuf =>
0 commit comments