Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add completion count in SearchBackpressure nodeStats API #8701

Closed
wants to merge 331 commits into from
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
331 commits
Select commit Hold shift + click to select a range
a62c020
Update version guards to deal for aggregation profiler with concurren…
ticheng-aws Aug 1, 2023
1820bf7
Bump com.maxmind.geoip2:geoip2 from 4.0.1 to 4.1.0 in /modules/ingest…
dependabot[bot] Aug 1, 2023
07e253a
Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0 in /plugi…
dependabot[bot] Aug 1, 2023
b39e58b
[Refactor] Recyclers to Common Library (#9028)
nknize Aug 1, 2023
dcd7e34
Bump netty from 4.1.94.Final to 4.1.96.Final (#9030)
reta Aug 1, 2023
92dd8a0
[BWC] Change BWC version check for MediaType (#9035)
nknize Aug 1, 2023
5895165
Add workflow to check compatibility (#8486)
gaiksaya Aug 1, 2023
6d0795e
Update BwC version for file cache safeguards (#9038)
kotwanikunal Aug 1, 2023
140dad8
[BWC] Change BWC version check for MediaType in PercolateQueryBuilder…
nknize Aug 2, 2023
fea393c
[Segment Replication] Refactor RemoteStoreReplicationSource (#8767)
dreamer-89 Aug 2, 2023
7f3d9cd
Disallowing compression level for lz4 and best_compression codec (#8737)
sarthakaggarwal97 Aug 2, 2023
6d20df9
readding codecs in the tests (#8987)
sarthakaggarwal97 Aug 2, 2023
01c7176
Added featureflag (#8988)
stefano-maglione Aug 2, 2023
ae5c66c
[Refactor] Network and Transport common classes to Libraries (#9073)
nknize Aug 2, 2023
222bfd1
[Snapshot Interop] Add Logic in Lock Manager to cleanup stale data po…
harishbhakuni Aug 3, 2023
cb580db
Avoid duplicate indexing in case of SegRep enabled indices' translog …
gbbafna Aug 3, 2023
dd422e5
Fix flaky test testStatsOnShardUnassigned in RemoteStoreStatsIT (#9057)
ashking94 Aug 3, 2023
e88d602
Fix test testDropPrimaryDuringReplication and clean up ReplicationChe…
mch2 Aug 3, 2023
ce732de
Change to determine if concurrent segment search should be used by th…
sohami Aug 3, 2023
a1d2524
Remove empty if/try-finally in base integ test class (#9098)
andrross Aug 3, 2023
9a1e263
[Remote Store] Add missing unit test in main (#9101)
dreamer-89 Aug 3, 2023
9bee1ee
Make MultiBucketConsumerService thread safe to use across slices duri…
neetikasinghal Aug 4, 2023
a825259
[Refactor] CollectionUtils, Iterators, and String methods to core lib…
nknize Aug 4, 2023
3622775
[Refactor] Strings methods other than MediaType (#9126)
nknize Aug 5, 2023
0e1c1c7
[Segment Replication] Prioritize replica shard movement during shard …
Poojita-Raj Aug 5, 2023
bab1d6f
Mute flaky test ReplicaToPrimaryPromotionIT.testFailoverWhileIndexing…
Poojita-Raj Aug 5, 2023
251e000
[Refactor] Remaining Strings utility methods to core library (#9103)
nknize Aug 5, 2023
55a12dc
Fix local segments stats update in RemoteStoreRefreshListener (#8758)
ashking94 Aug 6, 2023
dac7cf1
[Segment Replication] Remove Doc Parsing for segment replication enab…
Rishikesh1159 Aug 6, 2023
46f27e5
Added integration tests support for Telemetry span validation (#8444)
Shephalimittal Aug 7, 2023
256d779
Fix compilation warning in CollectionUtils affecting maven snapshot p…
cwperks Aug 7, 2023
b0accf6
added opensearch.internal and opensearch.api to additional tags in Ja…
LSchultebraucks Aug 7, 2023
76126b4
Add Gradle's 'assemble' check to catch the distribution generation is…
reta Aug 7, 2023
f838bfc
Update search.concurrent.max_slice setting to dynamic cluster setting…
sohami Aug 7, 2023
ccb1119
Moving get snapshot requests to listener based async calls (#8377)
indrajohn7 Aug 8, 2023
7a91217
Move remote restore related ITs to RemoteStoreRestoreIT (#9113)
linuxpi Aug 8, 2023
c59449c
Bump io.projectreactor.netty:reactor-netty-http from 1.1.8 to 1.1.9 i…
dependabot[bot] Aug 8, 2023
7a9c7ab
introducing codecs as their algo name (#9123)
sarthakaggarwal97 Aug 8, 2023
66c6f0f
Bump org.apache.maven:maven-model from 3.9.3 to 3.9.4 in /buildSrc (#…
dependabot[bot] Aug 8, 2023
18623ae
Bump org.apache.zookeeper:zookeeper from 3.8.2 to 3.9.0 in /test/fixt…
dependabot[bot] Aug 8, 2023
42f1266
Adds support for tracing runnable scenarios (#8831)
Gaganjuneja Aug 8, 2023
d644f6a
Reinstate maintainers from emeritus to active (#9173)
nknize Aug 8, 2023
1d7207e
Fixing SnapshotResiliencyTests.testTransportGetSnapshotsAction (#9189)
indrajohn7 Aug 9, 2023
2e83cf8
Mute flaky test SearchWeightedRoutingIT.testStrictWeightedRoutingWith…
Poojita-Raj Aug 9, 2023
cff4fcd
Bump io.grpc:grpc-context from 1.56.1 to 1.57.1 in /plugins/repositor…
dependabot[bot] Aug 9, 2023
4dd164e
Mute flaky test ShardMovementStrategyTests.testClusterGreenAfterParti…
Poojita-Raj Aug 9, 2023
1827856
Do not evaluate shard_size and shard_min_doc_count at segment slice l…
jed326 Aug 9, 2023
bd52fb4
[Refactor] From XContentType.JSON to MediaTypeRegistry.JSON (#9156)
nknize Aug 9, 2023
5da843d
[BUG] org.opensearch.client.RestClientSingleHostIntegTests.testReques…
reta Aug 10, 2023
0e02fb1
Add release notes for 1.3.12 (#9214)
Xtansia Aug 10, 2023
cd342dd
[Remote Store] Fix couple of Remote Store flaky test and use bulk api…
gbbafna Aug 10, 2023
645fa02
[Refactor] Task foundation classes to core library - pt 1 (#9082)
nknize Aug 10, 2023
7302cda
Automatically update GitHub Actions dependencies with dependabot (#9221)
reta Aug 10, 2023
bcea71e
Bump com.azure:azure-storage-blob from 12.22.3 to 12.23.0 in /plugins…
dependabot[bot] Aug 10, 2023
6d22994
[Segment Replication] Refactor file cleanup logic and fix PIT/Scroll …
mch2 Aug 10, 2023
d36f82d
Bump com.diffplug.spotless from 6.19.0 to 6.20.0 (#9227)
dependabot[bot] Aug 10, 2023
44a05ad
Fix test SegmentReplicationIndexShardTests.testPrimaryRestart. (#9245)
mch2 Aug 11, 2023
eee26dc
Force upgrade the vulnerable dependencies of hadoop-minicluster (#9252)
Xtansia Aug 11, 2023
0c94c79
[Remote Store] Introduce RemoteStoreRestoreService to handle restore …
linuxpi Aug 11, 2023
cbe711d
Bump com.google.code.gson:gson from 2.9.0 to 2.10.1 in /plugins/repos…
dependabot[bot] Aug 11, 2023
3ec7c96
Bump lycheeverse/lychee-action from 1.2.0 to 1.8.0 (#9228)
dependabot[bot] Aug 11, 2023
5cfe81d
Fix flaky test SegmentReplicationIT.testDeleteOperations. (#9244)
mch2 Aug 11, 2023
3a68d37
Upgrade backport action to support failed labels (#9270)
kotwanikunal Aug 11, 2023
98bdc31
Bump snakeyaml from 2.0 to 2.1 (#9269)
reta Aug 11, 2023
5d43e55
Adds attributes to startSpan (#9199)
Gaganjuneja Aug 11, 2023
9eb7d21
Make SearchTemplateRequest implement IndicesRequest.Replaceable (#9122)
cwperks Aug 11, 2023
f27a686
Implement on behalf of token passing for extensions (#8679)
stephen-crawford Aug 11, 2023
2196d18
[Segment Replication] Unmute testIndexingWithSegRep rolling upgrade t…
dreamer-89 Aug 11, 2023
d22c2d8
[BWC and API enforcement] Define the initial set of annotations, thei…
reta Aug 11, 2023
7ca23a9
docCountError must be 0 for shard level reduce (#9246)
jed326 Aug 12, 2023
bcf026a
[Remote Store] Add remote segment transfer stats on NodesStats API (#…
shourya035 Aug 14, 2023
98851bd
[Remote Store] Remove stale code for remote restore from Restore Serv…
linuxpi Aug 14, 2023
b5a330f
Bump aws-actions/configure-aws-credentials from 1 to 2 (#9302)
dependabot[bot] Aug 14, 2023
daf0467
[BWC and API enforcement] Extend the element types the initial set of…
reta Aug 14, 2023
e5efadc
[BUG] The spotless should take care of unified imports ordering (benc…
reta Aug 14, 2023
3e9a907
move the is_node_under_duress property to nodeStats
Aug 30, 2023
35b6ed0
change primitve long to Long for completionCount in shardTaskStats
kaushalmahi12 Aug 31, 2023
802c860
remove the nodeDuress field from nodeStats pojo
kaushalmahi12 Sep 11, 2023
fef751f
remove nodeUnderDuress from SBPStats pojo
kaushalmahi12 Sep 12, 2023
090e8ec
modify changelog
kaushalmahi12 Sep 12, 2023
ae13d88
The spotless should take care of unified imports ordering (libs/ subp…
owaiskazi19 Aug 14, 2023
a48a1b9
Fix flaky testCorruptedTranslog test (#9139)
dbwiddis Aug 14, 2023
907c614
Restrict GitHub Actions to run only on OpenSearch repo (#9284)
dbwiddis Aug 14, 2023
33d3bfd
Return 409 Conflict HTTP status instead of 500 on failure to concurre…
baba-devv Aug 14, 2023
f5925e0
[BUG] The spotless should take care of unified imports ordering (buil…
reta Aug 15, 2023
2e2a1a7
Refactor Compressors from CompressorFactory to CompressorRegistry for…
nknize Aug 15, 2023
617e831
Change noisy logs on SegRep and remote store paths to trace level (#9…
mch2 Aug 15, 2023
4f76390
[Segment Replication] Mute flaky testIndexingWithSegRep test (#9324)
dreamer-89 Aug 15, 2023
17e3fa2
Enforce up-to-date Guava in buildSrc (#9335)
Xtansia Aug 15, 2023
65d7f49
[BUG] The spotless should take care of unified imports ordering (clie…
reta Aug 15, 2023
d247bee
[BUG] The spotless should take care of unified imports ordering (modu…
reta Aug 15, 2023
6d747b9
The spotless should take care of unified imports ordering (test/ subp…
owaiskazi19 Aug 15, 2023
eec8758
[CheckCompatibility] Prevent interleaving of log output (#9280)
peternied Aug 15, 2023
1a8ae0f
Mute RemoteRestoreSnapshotIT.testRestoreInSameRemoteStoreEnabledIndex…
andrross Aug 15, 2023
e961d8f
Add base class for parameterizing the search based tests (#9083)
neetikasinghal Aug 15, 2023
5ab4072
[BUG] The spotless should take care of unified imports ordering (plug…
reta Aug 15, 2023
e08783f
Add support for wrapping CollectorManager with profiling during concu…
ticheng-aws Aug 15, 2023
82554fe
Mute remote store + segRep flaky tests that frequently block checks. …
mch2 Aug 15, 2023
9ed5792
Fix changelog divergence on main (#9372)
andrross Aug 15, 2023
1d3943c
Default to mmapfs within hybridfs (#8508)
dzane17 Aug 15, 2023
e6d4967
Rethrow OpenSearch exception in concurrent search (#9177)
neetikasinghal Aug 15, 2023
d5d7559
[Remote Store] Rename RemoteRefreshSegmentPressureSettings and Remote…
Aug 16, 2023
547ef2e
Changing remotestore based metrics version to 2.10 (#9389)
shourya035 Aug 16, 2023
3f5f5ab
Fix flaky test InternalEngineTests.testLastRefreshCheckpoint (#9365)
ankitkala Aug 16, 2023
d42caad
[BUG] The spotless should take care of unified imports ordering (serv…
reta Aug 16, 2023
f351d9e
[BUG] The spotless should take care of unified imports ordering (serv…
reta Aug 16, 2023
e268726
Fix flaky test NRTReplicationEngineTests.testPreserveLatestCommit (#9…
mch2 Aug 16, 2023
9c78e65
[BUG] The spotless should take care of unified imports ordering (all …
reta Aug 16, 2023
1ffd7ee
[Remove] JodaCompatibleZonedDateTime (#9355)
nknize Aug 16, 2023
74c9e82
Fix flaky test by preventing duplicate keys in random mapping fields …
dbwiddis Aug 17, 2023
e5909a1
Close Zstd Dictionary after execution to avoid any memory leak. (#9403)
mgodwan Aug 17, 2023
7f7b583
Allow test clusters to run with TLS (#8900)
stephen-crawford Aug 17, 2023
86953be
[Segment Replication] Support realtime reads for GET requests (#9212)
Poojita-Raj Aug 17, 2023
b36fa4b
Fix location of zstd fix changelog entry (#9416)
andrross Aug 17, 2023
867f81d
Introduce cluster default and minimum index refresh interval settings…
ashking94 Aug 18, 2023
d0540b8
Improve performance of encoding composite keys in multi-term aggregat…
ketanv3 Aug 18, 2023
495404c
Bump zstd version to 1.5.5-5 (#9431)
sarthakaggarwal97 Aug 18, 2023
254cba0
[Remove] Joda from Serialization (#9350)
nknize Aug 18, 2023
660a535
Change log level of SegRep cancellations to debug (#9445)
mch2 Aug 20, 2023
61f7cf0
[Remote Store] Add cumulative bytes lag to NodesStats (#9393)
shourya035 Aug 21, 2023
d1236f3
Fix failing test in ShardMovementStrategyTests (#9420)
Poojita-Raj Aug 21, 2023
df146b6
Bugfix: remove assert on non-empty translog reader list (#9458)
sachinpkale Aug 22, 2023
df74593
Bump actions/setup-java from 2 to 3 (#9457)
dependabot[bot] Aug 22, 2023
33eef86
Bump org.apache.commons:commons-lang3 from 3.12.0 to 3.13.0 in /plugi…
dependabot[bot] Aug 22, 2023
0373067
[BUG] Add support to clear archived index settings (#9019)
ankitkala Aug 22, 2023
c082bc3
Bump com.google.api:gax from 2.27.0 to 2.32.0 in /plugins/repository-…
dependabot[bot] Aug 22, 2023
1f1a0e2
Github action for Gradle precommit failing on MacOS (#9486)
reta Aug 22, 2023
4826c46
[Feature] Expose term frequency in Painless script score context (#9081)
noCharger Aug 23, 2023
65db527
[Remote Store] Fix tests when we restore index without any refresh (#…
sachinpkale Aug 23, 2023
c69f374
[BUG] Reconstruct pit infos when deserialize GetAllPitNodesResponse (…
bugmakerrrrrr Aug 23, 2023
4b0b07d
Fix flaky test SegmentReplicationWithRemoteStorePressureIT.testAddRep…
mch2 Aug 23, 2023
675f6cf
Run compatibility check based on PR base branch (#9374)
gaiksaya Aug 23, 2023
7202a6b
Add Michael Froh as a maintainer (#9463)
andrross Aug 23, 2023
5d651d8
Fix range reads in respository-s3 (#9516)
andrross Aug 23, 2023
562982c
Handle null partSize in OnDemandBlockSnapshotIndexInput (#9470)
andrross Aug 23, 2023
dad309f
Update to Gradle 8.3 (#8896)
reta Aug 23, 2023
0ab2792
Fix sort related ITs for concurrent search (#9466)
neetikasinghal Aug 24, 2023
65ed0c4
Fixing unblock condition for index create block (#9437)
RS146BIJAY Aug 24, 2023
8b3110a
Implement range reads in HDFS repository (#9524)
andrross Aug 24, 2023
d70e8d0
Removing the vec file extension from INDEX_STORE_HYBRID_NIO_EXTENSION…
navneet1v Aug 24, 2023
fbb8f91
[Remote Store] Add total upload and download time from remote store t…
shourya035 Aug 25, 2023
22077a2
[Remote Store] Removing version checks from RemoteSegmentStats (#9545)
shourya035 Aug 25, 2023
60c391f
Update AggregatorFactory to provide a method to indicate if it suppor…
jed326 Aug 25, 2023
6525582
Move the changelog entry to correct section (#9543)
ankitkala Aug 25, 2023
c755240
Fix flaky test ArchivedIndexSettingsIT (#9515)
ankitkala Aug 25, 2023
96d1c73
Rate Limiter integration for remote transfer (#9448)
Bukhtawar Aug 25, 2023
17b2969
Performance improvements for BytesRefHash (#8788)
ketanv3 Aug 25, 2023
7a4c02c
Fix test DeletePitMultiNodeIT.testDeleteWhileSearch (#9482)
bugmakerrrrrr Aug 25, 2023
669c15b
Bump netty from 4.1.96.Final to 4.1.97.Final (#9553)
reta Aug 25, 2023
c685e71
Set replication type to SEGMENT in remote store enabled cluster if no…
linuxpi Aug 28, 2023
7e68b1f
Bugfix: add replica information in remote store restore flow (#8951)
sachinpkale Aug 28, 2023
7ab2c27
Add support to use trace propagated from client (#9506)
Gaganjuneja Aug 28, 2023
36736b6
Add Secure Bwc documentation to TESTING.md (#9414)
stephen-crawford Aug 28, 2023
28db95d
For sort request on timeseries field use non concurrent search path (…
sohami Aug 28, 2023
6ccda79
[Segment Replication] Fix bug where replica shows stale doc count dur…
mch2 Aug 28, 2023
7fd5473
[Segment Replication] Add ClusterState utility to identify SEGMENT re…
dreamer-89 Aug 29, 2023
eeedb83
Bump io.grpc:grpc-api from 1.57.1 to 1.57.2 in /plugins/repository-gc…
dependabot[bot] Aug 29, 2023
eb72e68
Add SearchExtBuilders to SearchResponse (#9379)
austintlee Aug 29, 2023
5a80b47
Fix GH runners memory issue by increasing swapfile (#9596)
gaiksaya Aug 29, 2023
bbf0eac
[Remote Store] Retry RemoteIndexShardTests flaky tests (#9597)
dreamer-89 Aug 30, 2023
11aa0c3
[BWC and API enforcement] Decorate the existing APIs with proper anno…
reta Aug 30, 2023
a4af8aa
Fix SegmentReplicationUsingRemoteStoreIT#testDropPrimaryDuringReplica…
mch2 Aug 30, 2023
1bb7f7e
Update the minimum version check on SearchExtBuilder support in Searc…
austintlee Aug 30, 2023
a560211
Allow MockTracingTelemetry to await for asynchronous tasks terminatio…
reta Aug 30, 2023
2687d96
Add benchmark to measure performance of CustomBinaryDocValuesField (#…
kkmr Aug 30, 2023
4a34c0b
Adding concurrent search versions of query count and time metrics (#9…
jed326 Aug 30, 2023
dfd5b71
[Segment Replication] Handle failover in mixed cluster mode (#9536)
Poojita-Raj Aug 31, 2023
3844eb1
[Remote Store] Add tracker factory to manage remote store stats track…
Aug 31, 2023
fb04e29
Decouple replication lag from logic to fail stale replicas (#9507)
ankitkala Aug 31, 2023
88152e0
[Remote State] Create service to publish cluster state to remote stor…
soosinha Aug 31, 2023
f1ff6d6
Add Crypto Handler abstractions for encryption/decryption and Crypto…
vikasvb90 Aug 31, 2023
03728ad
Added sampler based on Blanket Probabilistic Sampling rate and Overri…
devagarwal1803 Aug 31, 2023
d729fcf
Expose DelimitedTermFrequencyTokenFilter (#9479)
russcam Aug 31, 2023
1be14ad
Add async blob read and download support using multiple streams (#9592)
kotwanikunal Sep 1, 2023
2ce1eb9
Mute RemoteIndexShardTests primary promotion flaky tests (#9679)
dreamer-89 Sep 1, 2023
dda2e5e
Introduce cluster default remote translog buffer interval setting (#9…
ashking94 Sep 1, 2023
a9e28dc
remove redundent column headers in pit segments response (#9615)
bugmakerrrrrr Sep 1, 2023
261eeaa
[Segment Replication] Allow segment replication with on disk files no…
dreamer-89 Sep 1, 2023
f40ef19
[Tracing Framework] Redefine telemetry context restoration and propag…
Gaganjuneja Sep 1, 2023
451e0a7
Fix Segment Replication stats bytes behind metric (#9686)
mch2 Sep 1, 2023
956a8b2
[Remote Store] Mute RemoteIndexRecoveryIT.testReplicaRecovery flaky t…
dreamer-89 Sep 1, 2023
9fd8347
Add average query concurrency metric for concurrent segment search (#…
jed326 Sep 2, 2023
054b918
Add support download latest index metadata from remote (#9477)
linuxpi Sep 2, 2023
1d08f70
Disable shard/segment level search_after short cutting if track_total…
gashutos Sep 2, 2023
5f588ac
Segment Replication - Block snapshot creation if the target primary s…
mch2 Sep 4, 2023
6c887fd
[Remote state] Integrate remote cluster state in publish/commit flow …
soosinha Sep 4, 2023
95017ef
Fix null_pointer_exception when creating or updating ingest pipeline …
gaobinlong Sep 4, 2023
ca0e324
Add encryption support for repository (#9289)
vikasvb90 Sep 4, 2023
a70ddca
[Remote Store] Add support for Remote Translog Store stats in `_remot…
Sep 4, 2023
46f38ef
[Segment Replication] Adding segment replication statistics rolled up…
Poojita-Raj Sep 4, 2023
244a5c4
Update version back to 2_10_0 in Segmentstats. (#9745)
Rishikesh1159 Sep 5, 2023
b8b098a
Fix bwc version for concurrent segment search stats (#9722)
jed326 Sep 5, 2023
ddb8dc0
Bump org.apache.ant:ant from 1.10.13 to 1.10.14 in /buildSrc (#9579)
dependabot[bot] Sep 5, 2023
87c41de
BWC compatibility fix for crypto settings in put repository request (…
vikasvb90 Sep 5, 2023
aea3040
Initial commit of crypto-kms plugin (#8465)
vikasvb90 Sep 5, 2023
5250412
[Tracing Framework] Add proper API annotations (#9706)
reta Sep 5, 2023
06eae48
Add Peter Nied as a Maintainer (#9765)
dbwiddis Sep 5, 2023
da06354
Rename remote store stats field names (#9763)
ashking94 Sep 5, 2023
c6ce82f
Add support for query profiler with concurrent aggregation (#9248)
ticheng-aws Sep 5, 2023
43ec961
[Segment Replication] Fix shrink Index bug with segment replication. …
Rishikesh1159 Sep 5, 2023
0a664c6
Remove org.bouncycastle:bcprov-jdk15to18: not needed and breaks the p…
reta Sep 5, 2023
9b94f22
Cleanup Unreferenced file on segment merge failure (#9503)
RS146BIJAY Sep 6, 2023
30ef856
Retry download of RemoteFSTranslog to fix transient race conditions (…
gbbafna Sep 6, 2023
ff4ce08
[Remote Store] Changes to perform repository registration during boot…
psychbot Sep 6, 2023
a083d9c
fix: flaky test ClusterMetadataManifestTests (#9728)
r1walz Sep 6, 2023
227b974
[Remote Store] Fixing flaky test - RemoteIndexPrimaryRelocationIT (#9…
psychbot Sep 6, 2023
9dddb16
[Remote Store] Add support for Remote Translog Store upload stats in …
Sep 6, 2023
f2a805c
Fix searchable snapshot to not sync from remote (#9791)
shourya035 Sep 6, 2023
0689d3b
Crypto Metadata support in repo registration (#9802)
gbbafna Sep 6, 2023
4f1eeb7
[Remote Cluster State] Parallel and Multipart IndexMetadata uploads (…
linuxpi Sep 6, 2023
3c2bd43
Introducing ZStd compression codec plugin (#9658)
sarthakaggarwal97 Sep 6, 2023
011ac4d
[Remote Store] Add support to remote restore IndexMetadata (#9086)
linuxpi Sep 6, 2023
6e88251
Validate MockTracingTelemetry span state on shutdown. (#9818)
Gaganjuneja Sep 6, 2023
e5f7c72
Remvoving ESDK changes from core (#9833)
vikasvb90 Sep 6, 2023
b841d82
Mute flaky test ReadContextListenerTests.testReadContextListenerFailu…
kotwanikunal Sep 6, 2023
19a4741
[Remote Store] Muting RemoteStoreRefreshListenerTests.testReplicaProm…
shourya035 Sep 7, 2023
fb1b775
Bump 2.x version to 2.11 (#9856)
kotwanikunal Sep 7, 2023
33c6701
[Snapshot Interop] Fix Flakiness in Snapshot Interop Code (#9795)
harishbhakuni Sep 7, 2023
282c04c
Decrease store refcount on any failure to create NRTReplicationEngine…
sachinpkale Sep 7, 2023
db56773
Mute org.opensearch.index.codec.MultiCodecMergeIT.testForceMergeMulti…
sachinpkale Sep 7, 2023
ac160d7
[Remote Store] Update version check for Remote Translog Store upload …
Sep 7, 2023
d2e481b
Removing asserts based on translog stats as it is not applicable for …
gbbafna Sep 7, 2023
8d7420c
[Remote Cluster State] Move remote cluster state related settings to …
linuxpi Sep 7, 2023
daaf935
Add logic to fetch previousClusterUUID (#9746)
soosinha Sep 7, 2023
a7ed209
[Remote Store] Removing feature flag to mark feature GA (#9761)
shourya035 Sep 7, 2023
663637e
Fix flaky codec tests (#9889)
sarthakaggarwal97 Sep 7, 2023
f6354df
Restore cluster metadata during bootstrap (#9831)
soosinha Sep 7, 2023
42ce8b1
Unmute testIndexingWithPrimaryOnBwcNodes (#9742)
dreamer-89 Sep 7, 2023
4cef54f
changing compat version back to 2.10 (#9899)
shourya035 Sep 7, 2023
7038311
[Remote Cluster State] Remove stale remote cluster state (#9719)
linuxpi Sep 7, 2023
2eee583
Fix default tracer flaky test (#9782)
Gaganjuneja Sep 7, 2023
05c997d
Mute the query profile IT with concurrent execution (#9840)
ticheng-aws Sep 8, 2023
5057cdb
Disable remote integrity check for encrypted repos for ChecksumBlobst…
linuxpi Sep 8, 2023
38b44aa
Improve performance of rounding dates in date_histogram aggregation (…
ketanv3 Sep 8, 2023
3176480
Allow parameterization of tests with OpenSearchIntegTestCase.SuiteSco…
neetikasinghal Sep 8, 2023
44df807
[Segment Replication] Support realtime TermVector requests with Segme…
Rishikesh1159 Sep 8, 2023
54ae47e
Add Tracing Instrumentation at Network and Rest layer (#9415)
Gaganjuneja Sep 8, 2023
11949f7
Remove custom-codecs plugin (#9944)
andrross Sep 8, 2023
344c32e
Fix ReadContextListenerTests to avoid inconsistent WindowsFS file han…
kotwanikunal Sep 8, 2023
cdcd887
Add release notes for 2.10 (#9955)
kotwanikunal Sep 8, 2023
b8c2396
Mute CorrelationCodecTests.testCorrelationVectorIndex (#9956)
andrross Sep 9, 2023
87495bf
Update single comment for check compatibility (#9954)
andrross Sep 9, 2023
9bb30e2
Fixing various javadocs (#9817)
ker2x Sep 10, 2023
25605ee
Bump peter-evans/create-or-update-comment from 2 to 3 (#9575)
dependabot[bot] Sep 10, 2023
091b98e
Bump actions/checkout from 2 to 4 (#9968)
dependabot[bot] Sep 11, 2023
2ae92f3
Bump org.apache.commons:commons-compress from 1.23.0 to 1.24.0 (#9973)
reta Sep 11, 2023
cad1aa7
Bump JNA version from 5.5 to 5.13. (#9963)
austintlee Sep 11, 2023
549b46f
Bump OpenTelemetry from 1.26.0 to 1.30.0 (#9950)
reta Sep 11, 2023
9d497bf
Block unsafe bootstrap when remote state is enabled (#9965)
soosinha Sep 12, 2023
1f56190
merge opensearch/main
kaushalmahi12 Sep 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[Remote Store] Fix tests when we restore index without any refresh (#…
…9480)

Signed-off-by: Sachin Kale <kalsac@amazon.com>
Signed-off-by: Kaushal Kumar <ravi.kaushal97@gmail.com>
  • Loading branch information
sachinpkale authored and kaushalmahi12 committed Sep 12, 2023
commit 65db5270e47c1ce18474db7801f40effcf99dfe9
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ protected Map<String, Long> indexData(int numberOfIterations, boolean invokeFlus
Map<String, Long> indexingStats = new HashMap<>();
for (int i = 0; i < numberOfIterations; i++) {
if (invokeFlush) {
flush(index);
flushAndRefresh(index);
} else {
refresh(index);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ public class RemoteStoreRestoreIT extends RemoteStoreBaseIntegTestCase {
private static final String TOTAL_OPERATIONS = "total-operations";
private static final String REFRESHED_OR_FLUSHED_OPERATIONS = "refreshed-or-flushed-operations";
private static final String MAX_SEQ_NO_TOTAL = "max-seq-no-total";
private static final String MAX_SEQ_NO_REFRESHED_OR_FLUSHED = "max-seq-no-refreshed-or-flushed";

@Override
public Settings indexSettings() {
Expand Down Expand Up @@ -68,18 +67,18 @@ private void restore(String... indices) {
);
}

private void verifyRestoredData(Map<String, Long> indexStats, boolean checkTotal, String indexName) {
private void verifyRestoredData(Map<String, Long> indexStats, String indexName) {
// This is required to get updated number from already active shards which were not restored
refresh(indexName);
String statsGranularity = checkTotal ? TOTAL_OPERATIONS : REFRESHED_OR_FLUSHED_OPERATIONS;
String maxSeqNoGranularity = checkTotal ? MAX_SEQ_NO_TOTAL : MAX_SEQ_NO_REFRESHED_OR_FLUSHED;
ensureYellowAndNoInitializingShards(indexName);
ensureGreen(indexName);
assertHitCount(client().prepareSearch(indexName).setSize(0).get(), indexStats.get(statsGranularity));
assertHitCount(client().prepareSearch(indexName).setSize(0).get(), indexStats.get(TOTAL_OPERATIONS));
IndexResponse response = indexSingleDoc(indexName);
assertEquals(indexStats.get(maxSeqNoGranularity + "-shard-" + response.getShardId().id()) + 1, response.getSeqNo());
if (indexStats.containsKey(MAX_SEQ_NO_TOTAL + "-shard-" + response.getShardId().id())) {
assertEquals(indexStats.get(MAX_SEQ_NO_TOTAL + "-shard-" + response.getShardId().id()) + 1, response.getSeqNo());
}
refresh(indexName);
assertHitCount(client().prepareSearch(indexName).setSize(0).get(), indexStats.get(statsGranularity) + 1);
assertHitCount(client().prepareSearch(indexName).setSize(0).get(), indexStats.get(TOTAL_OPERATIONS) + 1);
}

private void prepareCluster(int numClusterManagerNodes, int numDataOnlyNodes, String indices, int replicaCount, int shardCount) {
Expand All @@ -96,7 +95,6 @@ private void prepareCluster(int numClusterManagerNodes, int numDataOnlyNodes, St
* Simulates all data restored using Remote Translog Store.
* @throws IOException IO Exception.
*/
@AwaitsFix(bugUrl = "https://github.com/opensearch-project/OpenSearch/issues/6188")
public void testRemoteTranslogRestoreWithNoDataPostCommit() throws IOException {
testRestoreFlow(1, true, randomIntBetween(1, 5));
}
Expand Down Expand Up @@ -131,7 +129,6 @@ public void testRemoteTranslogRestoreWithCommittedData() throws IOException {
* Simulates all data restored using Remote Translog Store.
* @throws IOException IO Exception.
*/
// @AwaitsFix(bugUrl = "https://github.com/opensearch-project/OpenSearch/issues/6188")
@AwaitsFix(bugUrl = "https://github.com/opensearch-project/OpenSearch/issues/8479")
public void testRTSRestoreWithNoDataPostCommitPrimaryReplicaDown() throws IOException {
testRestoreFlowBothPrimaryReplicasDown(1, true, randomIntBetween(1, 5));
Expand Down Expand Up @@ -172,7 +169,7 @@ private void restoreAndVerify(int shardCount, int replicaCount, Map<String, Long
// This is required to get updated number from already active shards which were not restored
assertEquals(shardCount * (1 + replicaCount), getNumShards(INDEX_NAME).totalNumShards);
assertEquals(replicaCount, getNumShards(INDEX_NAME).numReplicas);
verifyRestoredData(indexStats, true, INDEX_NAME);
verifyRestoredData(indexStats, INDEX_NAME);
}

/**
Expand All @@ -186,6 +183,8 @@ private void testRestoreFlow(int numberOfIterations, boolean invokeFlush, int sh
Map<String, Long> indexStats = indexData(numberOfIterations, invokeFlush, INDEX_NAME);
assertEquals(shardCount, getNumShards(INDEX_NAME).totalNumShards);

assertHitCount(client().prepareSearch(INDEX_NAME).setSize(0).get(), indexStats.get(REFRESHED_OR_FLUSHED_OPERATIONS));

internalCluster().stopRandomNode(InternalTestCluster.nameFilter(primaryNodeName(INDEX_NAME)));
ensureRed(INDEX_NAME);

Expand Down Expand Up @@ -256,7 +255,7 @@ private void testRestoreFlowMultipleIndices(int numberOfIterations, boolean invo
ensureGreen(indices);
for (String index : indices) {
assertEquals(shardCount, getNumShards(index).totalNumShards);
verifyRestoredData(indicesStats.get(index), true, index);
verifyRestoredData(indicesStats.get(index), index);
}
}

Expand Down Expand Up @@ -288,7 +287,7 @@ public void testRestoreFlowNoRedIndex() {

ensureGreen(INDEX_NAME);
assertEquals(shardCount, getNumShards(INDEX_NAME).totalNumShards);
verifyRestoredData(indexStats, true, INDEX_NAME);
verifyRestoredData(indexStats, INDEX_NAME);
}

/**
Expand Down Expand Up @@ -340,7 +339,7 @@ public void testRTSRestoreWithCommittedDataDefaultAllIndices() throws IOExceptio

for (String index : indices) {
assertEquals(shardCount, getNumShards(index).totalNumShards);
verifyRestoredData(indicesStats.get(index), true, index);
verifyRestoredData(indicesStats.get(index), index);
}
}

Expand Down Expand Up @@ -384,9 +383,9 @@ public void testRTSRestoreWithCommittedDataNotAllRedRemoteIndices() throws IOExc
);
ensureGreen(indices[0], indices[1]);
assertEquals(shardCount, getNumShards(indices[0]).totalNumShards);
verifyRestoredData(indicesStats.get(indices[0]), true, indices[0]);
verifyRestoredData(indicesStats.get(indices[0]), indices[0]);
assertEquals(shardCount, getNumShards(indices[1]).totalNumShards);
verifyRestoredData(indicesStats.get(indices[1]), true, indices[1]);
verifyRestoredData(indicesStats.get(indices[1]), indices[1]);
ensureRed(indices[2], indices[3]);
}

Expand Down Expand Up @@ -436,9 +435,9 @@ public void testRTSRestoreWithCommittedDataExcludeIndicesPatterns() throws IOExc
);
ensureGreen(indices[0], indices[1]);
assertEquals(shardCount, getNumShards(indices[0]).totalNumShards);
verifyRestoredData(indicesStats.get(indices[0]), true, indices[0]);
verifyRestoredData(indicesStats.get(indices[0]), indices[0]);
assertEquals(shardCount, getNumShards(indices[1]).totalNumShards);
verifyRestoredData(indicesStats.get(indices[1]), true, indices[1]);
verifyRestoredData(indicesStats.get(indices[1]), indices[1]);
ensureRed(indices[2], indices[3]);
}

Expand All @@ -447,8 +446,7 @@ public void testRTSRestoreWithCommittedDataExcludeIndicesPatterns() throws IOExc
* when the index has no data.
* @throws IOException IO Exception.
*/
@AwaitsFix(bugUrl = "https://github.com/opensearch-project/OpenSearch/issues/6188")
public void testRTSRestoreNoData() throws IOException {
public void testRTSRestoreDataOnlyInTranslog() throws IOException {
testRestoreFlow(0, true, randomIntBetween(1, 5));
}

Expand Down
20 changes: 14 additions & 6 deletions server/src/main/java/org/opensearch/index/shard/StoreRecovery.java
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@
import org.opensearch.index.store.RemoteSegmentStoreDirectory;
import org.opensearch.index.store.RemoteSegmentStoreDirectoryFactory;
import org.opensearch.index.store.Store;
import org.opensearch.index.translog.Checkpoint;
import org.opensearch.index.translog.Translog;
import org.opensearch.index.translog.TranslogHeader;
import org.opensearch.indices.recovery.RecoveryState;
import org.opensearch.indices.replication.common.ReplicationLuceneIndex;
import org.opensearch.repositories.IndexId;
Expand All @@ -74,6 +76,8 @@

import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.StandardOpenOption;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
Expand All @@ -83,6 +87,7 @@
import java.util.stream.Collectors;

import static org.opensearch.common.unit.TimeValue.timeValueMillis;
import static org.opensearch.index.translog.Translog.CHECKPOINT_FILE_NAME;

/**
* This package private utility class encapsulates the logic to recover an index shard from either an existing index on
Expand Down Expand Up @@ -532,13 +537,16 @@ private void recoverFromRemoteStore(IndexShard indexShard) throws IndexShardReco
// Download segments from remote segment store
indexShard.syncSegmentsFromRemoteSegmentStore(true, true);

indexShard.syncTranslogFilesFromRemoteTranslog();

if (store.directory().listAll().length == 0) {
store.createEmpty(indexShard.indexSettings().getIndexVersionCreated().luceneVersion);
}
if (indexShard.indexSettings.isRemoteTranslogStoreEnabled()) {
indexShard.syncTranslogFilesFromRemoteTranslog();
} else {
bootstrap(indexShard, store);
Path location = indexShard.shardPath().resolveTranslog();
Checkpoint checkpoint = Checkpoint.read(location.resolve(CHECKPOINT_FILE_NAME));
final Path translogFile = location.resolve(Translog.getFilename(checkpoint.getGeneration()));
try (FileChannel channel = FileChannel.open(translogFile, StandardOpenOption.READ)) {
TranslogHeader translogHeader = TranslogHeader.read(translogFile, channel);
store.createEmpty(indexShard.indexSettings().getIndexVersionCreated().luceneVersion, translogHeader.getTranslogUUID());
}
}

assert indexShard.shardRouting.primary() : "only primary shards can recover from store";
Expand Down
15 changes: 11 additions & 4 deletions server/src/main/java/org/opensearch/index/store/Store.java
Original file line number Diff line number Diff line change
Expand Up @@ -1747,13 +1747,13 @@ public void accept(ShardLock Lock) {}
};
}

/**
* creates an empty lucene index and a corresponding empty translog. Any existing data will be deleted.
*/
public void createEmpty(Version luceneVersion) throws IOException {
public void createEmpty(Version luceneVersion, String translogUUID) throws IOException {
metadataLock.writeLock().lock();
try (IndexWriter writer = newEmptyIndexWriter(directory, luceneVersion)) {
final Map<String, String> map = new HashMap<>();
if (translogUUID != null) {
map.put(Translog.TRANSLOG_UUID_KEY, translogUUID);
}
map.put(Engine.HISTORY_UUID_KEY, UUIDs.randomBase64UUID());
map.put(SequenceNumbers.LOCAL_CHECKPOINT_KEY, Long.toString(SequenceNumbers.NO_OPS_PERFORMED));
map.put(SequenceNumbers.MAX_SEQ_NO, Long.toString(SequenceNumbers.NO_OPS_PERFORMED));
Expand All @@ -1764,6 +1764,13 @@ public void createEmpty(Version luceneVersion) throws IOException {
}
}

/**
* creates an empty lucene index and a corresponding empty translog. Any existing data will be deleted.
*/
public void createEmpty(Version luceneVersion) throws IOException {
createEmpty(luceneVersion, null);
}

/**
* Marks an existing lucene index with a new history uuid.
* This is used to make sure no existing shard will recovery from this index using ops based recovery.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
*
* @opensearch.internal
*/
final class TranslogHeader {
public final class TranslogHeader {
public static final String TRANSLOG_CODEC = "translog";

public static final int VERSION_CHECKSUMS = 1; // pre-2.0 - unsupported
Expand Down Expand Up @@ -137,9 +137,26 @@ static int readHeaderVersion(final Path path, final FileChannel channel, final S
}

/**
* Read a translog header from the given path and file channel
* Read a translog header from the given path and file channel and compare the given UUID
*/
static TranslogHeader read(final String translogUUID, final Path path, final FileChannel channel) throws IOException {
TranslogHeader translogHeader = read(path, channel);
// verify UUID only after checksum, to ensure that UUID is not corrupted
final BytesRef expectedUUID = new BytesRef(translogUUID);
final BytesRef actualUUID = new BytesRef(translogHeader.translogUUID);
if (actualUUID.bytesEquals(expectedUUID) == false) {
throw new TranslogCorruptedException(
path.toString(),
"expected shard UUID " + expectedUUID + " but got: " + actualUUID + " this translog file belongs to a different translog"
);
}
return translogHeader;
}

/**
* Read a translog header from the given path and file channel and compare the given UUID
*/
public static TranslogHeader read(final Path path, final FileChannel channel) throws IOException {
try {
// This input is intentionally not closed because closing it will close the FileChannel.
final BufferedChecksumStreamInput in = new BufferedChecksumStreamInput(
Expand Down Expand Up @@ -179,16 +196,7 @@ static TranslogHeader read(final String translogUUID, final Path path, final Fil
+ channel.position()
+ "]";

// verify UUID only after checksum, to ensure that UUID is not corrupted
final BytesRef expectedUUID = new BytesRef(translogUUID);
if (uuid.bytesEquals(expectedUUID) == false) {
throw new TranslogCorruptedException(
path.toString(),
"expected shard UUID " + expectedUUID + " but got: " + uuid + " this translog file belongs to a different translog"
);
}

return new TranslogHeader(translogUUID, primaryTerm, headerSizeInBytes);
return new TranslogHeader(uuid.utf8ToString(), primaryTerm, headerSizeInBytes);
} catch (EOFException e) {
throw new TranslogCorruptedException(path.toString(), "translog header truncated", e);
}
Expand Down
37 changes: 37 additions & 0 deletions server/src/test/java/org/opensearch/index/store/StoreTests.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@
import org.opensearch.index.seqno.ReplicationTracker;
import org.opensearch.index.seqno.RetentionLease;
import org.opensearch.index.seqno.SequenceNumbers;
import org.opensearch.index.translog.Translog;
import org.opensearch.indices.replication.common.ReplicationType;
import org.opensearch.indices.store.TransportNodesListShardStoreMetadata;
import org.opensearch.test.DummyShardLock;
Expand Down Expand Up @@ -1166,6 +1167,42 @@ public void testGetMetadataWithSegmentInfos() throws IOException {
store.close();
}

public void testCreateEmptyStore() throws IOException {
final ShardId shardId = new ShardId("index", "_na_", 1);
Store store = new Store(shardId, INDEX_SETTINGS, new NIOFSDirectory(createTempDir()), new DummyShardLock(shardId));
store.createEmpty(Version.LATEST);
SegmentInfos segmentInfos = Lucene.readSegmentInfos(store.directory());
assertFalse(segmentInfos.getUserData().containsKey(Translog.TRANSLOG_UUID_KEY));
testDefaultUserData(segmentInfos);
store.close();
}

public void testCreateEmptyStoreWithTranlogUUID() throws IOException {
final ShardId shardId = new ShardId("index", "_na_", 1);
Store store = new Store(shardId, INDEX_SETTINGS, new NIOFSDirectory(createTempDir()), new DummyShardLock(shardId));
store.createEmpty(Version.LATEST, "dummy-translog-UUID");
SegmentInfos segmentInfos = Lucene.readSegmentInfos(store.directory());
assertEquals("dummy-translog-UUID", segmentInfos.getUserData().get(Translog.TRANSLOG_UUID_KEY));
testDefaultUserData(segmentInfos);
store.close();
}

public void testCreateEmptyWithNullTranlogUUID() throws IOException {
final ShardId shardId = new ShardId("index", "_na_", 1);
Store store = new Store(shardId, INDEX_SETTINGS, new NIOFSDirectory(createTempDir()), new DummyShardLock(shardId));
store.createEmpty(Version.LATEST, null);
SegmentInfos segmentInfos = Lucene.readSegmentInfos(store.directory());
assertFalse(segmentInfos.getUserData().containsKey(Translog.TRANSLOG_UUID_KEY));
testDefaultUserData(segmentInfos);
store.close();
}

private void testDefaultUserData(SegmentInfos segmentInfos) {
assertEquals("-1", segmentInfos.getUserData().get(SequenceNumbers.LOCAL_CHECKPOINT_KEY));
assertEquals("-1", segmentInfos.getUserData().get(SequenceNumbers.MAX_SEQ_NO));
assertEquals("-1", segmentInfos.getUserData().get(Engine.MAX_UNSAFE_AUTO_ID_TIMESTAMP_COMMIT_ID));
}

public void testGetSegmentMetadataMap() throws IOException {
final ShardId shardId = new ShardId("index", "_na_", 1);
Store store = new Store(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,49 @@ public void testHeaderWithoutPrimaryTerm() throws Exception {
});
}

public void testCurrentHeaderVersionWithoutUUIDComparison() throws Exception {
final String translogUUID = UUIDs.randomBase64UUID();
final TranslogHeader outHeader = new TranslogHeader(translogUUID, randomNonNegativeLong());
final long generation = randomNonNegativeLong();
final Path translogFile = createTempDir().resolve(Translog.getFilename(generation));
try (FileChannel channel = FileChannel.open(translogFile, StandardOpenOption.CREATE_NEW, StandardOpenOption.WRITE)) {
outHeader.write(channel, true);
assertThat(outHeader.sizeInBytes(), equalTo((int) channel.position()));
}
try (FileChannel channel = FileChannel.open(translogFile, StandardOpenOption.READ)) {
final TranslogHeader inHeader = TranslogHeader.read(translogFile, channel);
assertThat(inHeader.getTranslogUUID(), equalTo(translogUUID));
assertThat(inHeader.getPrimaryTerm(), equalTo(outHeader.getPrimaryTerm()));
assertThat(inHeader.sizeInBytes(), equalTo((int) channel.position()));
}

TestTranslog.corruptFile(logger, random(), translogFile, false);
final TranslogCorruptedException corruption = expectThrows(TranslogCorruptedException.class, () -> {
try (FileChannel channel = FileChannel.open(translogFile, StandardOpenOption.READ)) {
final TranslogHeader translogHeader = TranslogHeader.read(translogFile, channel);
assertThat(
"version " + TranslogHeader.VERSION_CHECKPOINTS + " translog",
translogHeader.getPrimaryTerm(),
equalTo(SequenceNumbers.UNASSIGNED_PRIMARY_TERM)
);
throw new TranslogCorruptedException(translogFile.toString(), "adjusted translog version");
} catch (IllegalStateException e) {
// corruption corrupted the version byte making this look like a v2, v1 or v0 translog
assertThat(
"version " + TranslogHeader.VERSION_CHECKPOINTS + "-or-earlier translog",
e.getMessage(),
anyOf(
containsString("pre-2.0 translog found"),
containsString("pre-1.4 translog found"),
containsString("pre-6.3 translog found")
)
);
throw new TranslogCorruptedException(translogFile.toString(), "adjusted translog version", e);
}
});
assertThat(corruption.getMessage(), not(containsString("this translog file belongs to a different translog")));
}

static void writeHeaderWithoutTerm(FileChannel channel, String translogUUID) throws IOException {
final OutputStreamStreamOutput out = new OutputStreamStreamOutput(Channels.newOutputStream(channel));
CodecUtil.writeHeader(new OutputStreamDataOutput(out), TranslogHeader.TRANSLOG_CODEC, TranslogHeader.VERSION_CHECKPOINTS);
Expand Down