Bladeren bron

TEST: Avoid triggering merges in FlushIT

In testSyncedFlushSkipOutOfSyncReplicas, we reindex the extra documents
to all shards including the out-of-sync replica. However, reindexing to
that replica can trigger merges (due to the new deletes) which cause the
synced-flush failed. This test starts failing after we aggressively
trigger merges segments with a large number of deletes in LUCENE-8263.
Nhat Nguyen 7 jaren geleden
bovenliggende
commit
0ed3458534
1 gewijzigde bestanden met toevoegingen van 5 en 2 verwijderingen
  1. 5 2
      server/src/test/java/org/elasticsearch/indices/flush/FlushIT.java

+ 5 - 2
server/src/test/java/org/elasticsearch/indices/flush/FlushIT.java

@@ -274,8 +274,11 @@ public class FlushIT extends ESIntegTestCase {
             "out of sync replica; num docs on replica [" + (numDocs + extraDocs) + "]; num docs on primary [" + numDocs + "]"));
         // Index extra documents to all shards - synced-flush should be ok.
         for (IndexShard indexShard : indexShards) {
-            for (int i = 0; i < extraDocs; i++) {
-                indexDoc(IndexShardTestCase.getEngine(indexShard), "extra_" + i);
+            // Do reindex documents to the out of sync replica to avoid trigger merges
+            if (indexShard != outOfSyncReplica) {
+                for (int i = 0; i < extraDocs; i++) {
+                    indexDoc(IndexShardTestCase.getEngine(indexShard), "extra_" + i);
+                }
             }
         }
         final ShardsSyncedFlushResult fullResult = SyncedFlushUtil.attemptSyncedFlush(logger, internalCluster(), shardId);