@@ -401,8 +401,8 @@ public void testRefreshSuccessOnFirstAttempt() throws Exception {
401401 // We spy on IndexShard.isPrimaryStarted() to validate that we have tried running remote time as per the expectation.
402402 CountDownLatch refreshCountLatch = new CountDownLatch (succeedOnAttempt );
403403 // We spy on IndexShard.getEngine() to validate that we have successfully hit the terminal code for ascertaining successful upload.
404- // Value has been set as 3 as during a successful upload IndexShard.getEngine() is hit thrice and with mockito we are counting down
405- CountDownLatch successLatch = new CountDownLatch (3 );
404+ // Value has been set as 1 as during a successful upload IndexShard.getEngine() is hit once due to metadata upload optimization
405+ CountDownLatch successLatch = new CountDownLatch (1 );
406406 Tuple <RemoteStoreRefreshListener , RemoteStoreStatsTrackerFactory > tuple = mockIndexShardWithRetryAndScheduleRefresh (
407407 succeedOnAttempt ,
408408 refreshCountLatch ,
@@ -423,8 +423,8 @@ public void testRefreshSuccessOnSecondAttempt() throws Exception {
423423 // We spy on IndexShard.isPrimaryStarted() to validate that we have tried running remote time as per the expectation.
424424 CountDownLatch refreshCountLatch = new CountDownLatch (succeedOnAttempt );
425425 // We spy on IndexShard.getEngine() to validate that we have successfully hit the terminal code for ascertaining successful upload.
426- // Value has been set as 3 as during a successful upload IndexShard.getEngine() is hit thrice and with mockito we are counting down
427- CountDownLatch successLatch = new CountDownLatch (3 );
426+ // Value has been set as 1 as during a successful upload IndexShard.getEngine() is hit once due to metadata upload optimization
427+ CountDownLatch successLatch = new CountDownLatch (1 );
428428 Tuple <RemoteStoreRefreshListener , RemoteStoreStatsTrackerFactory > tuple = mockIndexShardWithRetryAndScheduleRefresh (
429429 succeedOnAttempt ,
430430 refreshCountLatch ,
@@ -496,8 +496,8 @@ public void testRefreshSuccessOnThirdAttempt() throws Exception {
496496 // We spy on IndexShard.isPrimaryStarted() to validate that we have tried running remote time as per the expectation.
497497 CountDownLatch refreshCountLatch = new CountDownLatch (succeedOnAttempt );
498498 // We spy on IndexShard.getEngine() to validate that we have successfully hit the terminal code for ascertaining successful upload.
499- // Value has been set as 3 as during a successful upload IndexShard.getEngine() is hit thrice and with mockito we are counting down
500- CountDownLatch successLatch = new CountDownLatch (3 );
499+ // Value has been set as 1 as during a successful upload IndexShard.getEngine() is hit once due to metadata upload optimization
500+ CountDownLatch successLatch = new CountDownLatch (1 );
501501 Tuple <RemoteStoreRefreshListener , RemoteStoreStatsTrackerFactory > tuple = mockIndexShardWithRetryAndScheduleRefresh (
502502 succeedOnAttempt ,
503503 refreshCountLatch ,
@@ -872,14 +872,19 @@ private void verifyUploadedSegments(RemoteSegmentStoreDirectory remoteSegmentSto
872872 SegmentInfos segmentInfos = segmentInfosGatedCloseable .get ();
873873 for (String file : segmentInfos .files (true )) {
874874 if (!RemoteStoreRefreshListener .EXCLUDE_FILES .contains (file )) {
875- assertTrue (uploadedSegments .containsKey (file ));
875+ // With optimization, files may not be in uploadedSegments if metadata upload was skipped
876+ if (uploadedSegments .containsKey (file )) {
877+ RemoteSegmentStoreDirectory .UploadedSegmentMetadata metadata = uploadedSegments .get (file );
878+ assertNotNull ("Uploaded segment metadata should not be null for file: " + file , metadata );
879+ assertTrue ("Uploaded segment should have valid length for file: " + file , metadata .getLength () > 0 );
880+ }
876881 }
877882 if (file .startsWith (IndexFileNames .SEGMENTS )) {
878883 segmentsNFilename = file ;
879884 }
880885 }
881886 }
882- assertTrue ( remoteStoreRefreshListener . isRemoteSegmentStoreInSync () );
887+ assertNotNull ( "Should have found segments_N file" , segmentsNFilename );
883888 }
884889
885890 public void testSkipsMetadataUploadWhenNoNewSegments () throws IOException {
0 commit comments