|
103 | 103 | import org.elasticsearch.index.mapper.ContentPath;
|
104 | 104 | import org.elasticsearch.index.mapper.IdFieldMapper;
|
105 | 105 | import org.elasticsearch.index.mapper.Mapper.BuilderContext;
|
| 106 | +import org.elasticsearch.index.mapper.MapperService; |
106 | 107 | import org.elasticsearch.index.mapper.Mapping;
|
107 | 108 | import org.elasticsearch.index.mapper.MetadataFieldMapper;
|
108 | 109 | import org.elasticsearch.index.mapper.ParseContext;
|
|
173 | 174 | import static org.hamcrest.Matchers.everyItem;
|
174 | 175 | import static org.hamcrest.Matchers.greaterThan;
|
175 | 176 | import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
| 177 | +import static org.hamcrest.Matchers.hasItem; |
176 | 178 | import static org.hamcrest.Matchers.hasKey;
|
177 | 179 | import static org.hamcrest.Matchers.hasSize;
|
178 | 180 | import static org.hamcrest.Matchers.lessThanOrEqualTo;
|
@@ -2603,7 +2605,7 @@ public void testRecoverFromForeignTranslog() throws IOException {
|
2603 | 2605 | new CodecService(null, logger), config.getEventListener(), IndexSearcher.getDefaultQueryCache(),
|
2604 | 2606 | IndexSearcher.getDefaultQueryCachingPolicy(), translogConfig, TimeValue.timeValueMinutes(5),
|
2605 | 2607 | config.getExternalRefreshListener(), config.getInternalRefreshListener(), null, config.getTranslogRecoveryRunner(),
|
2606 |
| - new NoneCircuitBreakerService(), () -> SequenceNumbers.UNASSIGNED_SEQ_NO, primaryTerm::get, EngineTestCase::createTombstoneDoc); |
| 2608 | + new NoneCircuitBreakerService(), () -> SequenceNumbers.UNASSIGNED_SEQ_NO, primaryTerm::get, tombstoneDocSupplier()); |
2607 | 2609 | try {
|
2608 | 2610 | InternalEngine internalEngine = new InternalEngine(brokenConfig);
|
2609 | 2611 | fail("translog belongs to a different engine");
|
@@ -3046,7 +3048,8 @@ public void testDoubleDeliveryReplica() throws IOException {
|
3046 | 3048 | TopDocs topDocs = searcher.searcher().search(new MatchAllDocsQuery(), 10);
|
3047 | 3049 | assertEquals(1, topDocs.totalHits);
|
3048 | 3050 | }
|
3049 |
| - assertThat(getOperationSeqNoInLucene(engine), contains(20L)); |
| 3051 | + List<Translog.Operation> ops = readAllOperationsInLucene(engine, createMapperService("test")); |
| 3052 | + assertThat(ops.stream().map(o -> o.seqNo()).collect(Collectors.toList()), hasItem(20L)); |
3050 | 3053 | }
|
3051 | 3054 |
|
3052 | 3055 | public void testRetryWithAutogeneratedIdWorksAndNoDuplicateDocs() throws IOException {
|
@@ -3606,7 +3609,9 @@ public void testNoOps() throws IOException {
|
3606 | 3609 | maxSeqNo,
|
3607 | 3610 | localCheckpoint);
|
3608 | 3611 | trimUnsafeCommits(engine.config());
|
3609 |
| - noOpEngine = new InternalEngine(engine.config(), supplier) { |
| 3612 | + EngineConfig noopEngineConfig = copy(engine.config(), new SoftDeletesRetentionMergePolicy(Lucene.SOFT_DELETE_FIELD, |
| 3613 | + () -> new MatchAllDocsQuery(), engine.config().getMergePolicy())); |
| 3614 | + noOpEngine = new InternalEngine(noopEngineConfig, supplier) { |
3610 | 3615 | @Override
|
3611 | 3616 | protected long doGenerateSeqNoForOperation(Operation operation) {
|
3612 | 3617 | throw new UnsupportedOperationException();
|
@@ -3636,6 +3641,13 @@ protected long doGenerateSeqNoForOperation(Operation operation) {
|
3636 | 3641 | assertThat(noOp.seqNo(), equalTo((long) (maxSeqNo + 2)));
|
3637 | 3642 | assertThat(noOp.primaryTerm(), equalTo(primaryTerm.get()));
|
3638 | 3643 | assertThat(noOp.reason(), equalTo(reason));
|
| 3644 | + MapperService mapperService = createMapperService("test"); |
| 3645 | + List<Translog.Operation> operationsFromLucene = readAllOperationsInLucene(noOpEngine, mapperService); |
| 3646 | + assertThat(operationsFromLucene, hasSize(maxSeqNo + 2 - localCheckpoint)); // fills n gap and 2 manual noop. |
| 3647 | + for (int i = 0; i < operationsFromLucene.size(); i++) { |
| 3648 | + assertThat(operationsFromLucene.get(i), equalTo(new Translog.NoOp(localCheckpoint + 1 + i, primaryTerm.get(), ""))); |
| 3649 | + } |
| 3650 | + assertConsistentHistoryBetweenTranslogAndLuceneIndex(noOpEngine, mapperService); |
3639 | 3651 | } finally {
|
3640 | 3652 | IOUtils.close(noOpEngine);
|
3641 | 3653 | }
|
@@ -4603,7 +4615,10 @@ private void assertOperationHistoryInLucene(List<Engine.Operation> operations) t
|
4603 | 4615 | engine.forceMerge(true);
|
4604 | 4616 | }
|
4605 | 4617 | }
|
4606 |
| - assertThat(getOperationSeqNoInLucene(engine), containsInAnyOrder(expectedSeqNos.toArray())); |
| 4618 | + MapperService mapperService = createMapperService("test"); |
| 4619 | + List<Translog.Operation> actualOps = readAllOperationsInLucene(engine, mapperService); |
| 4620 | + assertThat(actualOps.stream().map(o -> o.seqNo()).collect(Collectors.toList()), containsInAnyOrder(expectedSeqNos.toArray())); |
| 4621 | + assertConsistentHistoryBetweenTranslogAndLuceneIndex(engine, mapperService); |
4607 | 4622 | }
|
4608 | 4623 | }
|
4609 | 4624 |
|
|
0 commit comments