Skip to content

Commit c71a586

Browse files
Merge branch 'main' into fix-18045
Signed-off-by: shwetathareja <[email protected]>
2 parents 4b4b81d + 998ae73 commit c71a586

File tree

29 files changed

+315
-95
lines changed

29 files changed

+315
-95
lines changed

.github/workflows/links.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
- uses: actions/checkout@v4
1414
- name: lychee Link Checker
1515
id: lychee
16-
uses: lycheeverse/[email protected].0
16+
uses: lycheeverse/[email protected].1
1717
with:
1818
args: --accept=200,403,429 --exclude-mail **/*.html **/*.md **/*.txt **/*.json --exclude-file .lychee.excludes
1919
fail: true

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,25 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
2121
- Enable testing for ExtensiblePlugins using classpath plugins ([#16908](https://github.com/opensearch-project/OpenSearch/pull/16908))
2222
- Introduce system generated ingest pipeline ([#17817](https://github.com/opensearch-project/OpenSearch/pull/17817)))
2323
- Apply cluster state metadata and routing table diff when building cluster state from remote([#18256](https://github.com/opensearch-project/OpenSearch/pull/18256))
24+
- Support create mode in pull-based ingestion and add retries for transient failures ([#18250](https://github.com/opensearch-project/OpenSearch/pull/18250)))
25+
- Decouple the init of Crypto Plugin and KeyProvider in CryptoRegistry ([18270](https://github.com/opensearch-project/OpenSearch/pull18270)))
2426

2527
### Changed
2628

2729
### Dependencies
28-
- Bump `com.google.code.gson:gson` from 2.12.1 to 2.13.0 ([#17923](https://github.com/opensearch-project/OpenSearch/pull/17923))
30+
- Bump `com.google.code.gson:gson` from 2.12.1 to 2.13.1 ([#17923](https://github.com/opensearch-project/OpenSearch/pull/17923), [#18266](https://github.com/opensearch-project/OpenSearch/pull/18266))
2931
- Bump `com.github.spotbugs:spotbugs-annotations` from 4.9.0 to 4.9.3 ([#17922](https://github.com/opensearch-project/OpenSearch/pull/17922))
3032
- Bump `com.microsoft.azure:msal4j` from 1.18.0 to 1.20.0 ([#17925](https://github.com/opensearch-project/OpenSearch/pull/17925))
3133
- Update Apache HttpClient5 and HttpCore5 (CVE-2025-27820) ([#18152](https://github.com/opensearch-project/OpenSearch/pull/18152))
3234
- Bump `org.apache.commons:commons-collections4` from 4.4 to 4.5.0 ([#18101](https://github.com/opensearch-project/OpenSearch/pull/18101))
3335
- Bump `netty` from 4.1.118.Final to 4.1.121.Final ([#18192](https://github.com/opensearch-project/OpenSearch/pull/18192))
34-
- Bump `org.apache.commons:commons-configuration2` from 2.11.0 to 2.12.0 ([#18103](https://github.com/opensearch-project/OpenSearch/pull/18103))
36+
- Bump `org.apache.commons:commons-configuration2` from 2.11.0 to 2.12.0 ([#18103](https://github.com/opensearch-project/OpenSearch/pull/18103), [#18262](https://github.com/opensearch-project/OpenSearch/pull/18262))
3537
- Bump `com.nimbusds:nimbus-jose-jwt` from 10.0.2 to 10.2 ([#18104](https://github.com/opensearch-project/OpenSearch/pull/18104))
3638
- Bump `org.apache.commons:commons-text` from 1.13.0 to 1.13.1 ([#18102](https://github.com/opensearch-project/OpenSearch/pull/18102))
3739
- Bump `reactor-netty` from 1.2.4 to 1.2.5 ([#18243](https://github.com/opensearch-project/OpenSearch/pull/18243))
3840
- Bump `reactor` from 3.5.20 to 3.7.5 ([#18243](https://github.com/opensearch-project/OpenSearch/pull/18243))
41+
- Bump `com.azure:azure-core-http-netty` from 1.15.7 to 1.15.11 ([#18265](https://github.com/opensearch-project/OpenSearch/pull/18265))
42+
- Bump `lycheeverse/lychee-action` from 2.4.0 to 2.4.1 ([#18264](https://github.com/opensearch-project/OpenSearch/pull/18264))
3943

4044
### Deprecated
4145

plugins/ingestion-kafka/src/internalClusterTest/java/org/opensearch/plugin/kafka/IngestFromKafkaIT.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public void testCloseIndex() throws Exception {
138138
client().admin().indices().close(Requests.closeIndexRequest(indexName)).get();
139139
}
140140

141-
public void testUpdateAndDelete() throws Exception {
141+
public void testMessageOperationTypes() throws Exception {
142142
// Step 1: Produce message and wait for it to be searchable
143143

144144
produceData("1", "name", "25", defaultMessageTimestamp, "index");
@@ -168,6 +168,15 @@ public void testUpdateAndDelete() throws Exception {
168168
SearchResponse response = client().prepareSearch(indexName).setQuery(query).get();
169169
return response.getHits().getTotalHits().value() == 0;
170170
});
171+
172+
// Step 4: Validate create operation
173+
produceData("2", "name", "30", defaultMessageTimestamp, "create");
174+
waitForState(() -> {
175+
BoolQueryBuilder query = new BoolQueryBuilder().must(new TermQueryBuilder("_id", "2"));
176+
SearchResponse response = client().prepareSearch(indexName).setQuery(query).get();
177+
assertThat(response.getHits().getTotalHits().value(), is(1L));
178+
return 30 == (Integer) response.getHits().getHits()[0].getSourceAsMap().get("age");
179+
});
171180
}
172181

173182
public void testUpdateWithoutIDField() throws Exception {

plugins/repository-azure/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ dependencies {
4848
api 'com.azure:azure-json:1.3.0'
4949
api 'com.azure:azure-xml:1.1.0'
5050
api 'com.azure:azure-storage-common:12.28.0'
51-
api 'com.azure:azure-core-http-netty:1.15.7'
51+
api 'com.azure:azure-core-http-netty:1.15.11'
5252
api "io.netty:netty-codec-dns:${versions.netty}"
5353
api "io.netty:netty-codec-socks:${versions.netty}"
5454
api "io.netty:netty-codec-http2:${versions.netty}"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ab8382243424bf5d75cd71bf253842c4a9d0ef9d

plugins/repository-azure/licenses/azure-core-http-netty-1.15.7.jar.sha1

Lines changed: 0 additions & 1 deletion
This file was deleted.

plugins/repository-hdfs/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ dependencies {
6767
api 'org.apache.htrace:htrace-core4:4.2.0-incubating'
6868
api "org.apache.logging.log4j:log4j-core:${versions.log4j}"
6969
api 'org.apache.avro:avro:1.12.0'
70-
api 'com.google.code.gson:gson:2.13.0'
70+
api 'com.google.code.gson:gson:2.13.1'
7171
runtimeOnly "com.google.guava:guava:${versions.guava}"
7272
api "commons-logging:commons-logging:${versions.commonslogging}"
7373
api 'commons-cli:commons-cli:1.9.0'

plugins/repository-hdfs/licenses/gson-2.13.0.jar.sha1

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
853ce06c11316b33a8eae5e9095da096a9528b8f

plugins/repository-s3/src/main/java/org/opensearch/repositories/s3/S3AsyncService.java

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
import java.nio.file.Path;
5353
import java.time.Duration;
5454
import java.util.Map;
55+
import java.util.concurrent.ScheduledExecutorService;
5556

5657
import static java.util.Collections.emptyMap;
5758

@@ -75,10 +76,20 @@ class S3AsyncService implements Closeable {
7576
*/
7677
private volatile Map<Settings, S3ClientSettings> derivedClientSettings = emptyMap();
7778

78-
S3AsyncService(final Path configPath) {
79+
/**
80+
* Optional scheduled executor service to use for the client
81+
*/
82+
private final @Nullable ScheduledExecutorService clientExecutorService;
83+
84+
S3AsyncService(final Path configPath, @Nullable ScheduledExecutorService clientExecutorService) {
7985
staticClientSettings = MapBuilder.<String, S3ClientSettings>newMapBuilder()
8086
.put("default", S3ClientSettings.getClientSettings(Settings.EMPTY, "default", configPath))
8187
.immutableMap();
88+
this.clientExecutorService = clientExecutorService;
89+
}
90+
91+
S3AsyncService(final Path configPath) {
92+
this(configPath, null);
8293
}
8394

8495
/**
@@ -173,7 +184,7 @@ synchronized AmazonAsyncS3WithCredentials buildClient(
173184
) {
174185
setDefaultAwsProfilePath();
175186
final S3AsyncClientBuilder builder = S3AsyncClient.builder();
176-
builder.overrideConfiguration(buildOverrideConfiguration(clientSettings));
187+
builder.overrideConfiguration(buildOverrideConfiguration(clientSettings, clientExecutorService));
177188
final AwsCredentialsProvider credentials = buildCredentials(logger, clientSettings);
178189
builder.credentialsProvider(credentials);
179190

@@ -234,7 +245,10 @@ synchronized AmazonAsyncS3WithCredentials buildClient(
234245
return AmazonAsyncS3WithCredentials.create(client, priorityClient, urgentClient, credentials);
235246
}
236247

237-
static ClientOverrideConfiguration buildOverrideConfiguration(final S3ClientSettings clientSettings) {
248+
static ClientOverrideConfiguration buildOverrideConfiguration(
249+
final S3ClientSettings clientSettings,
250+
ScheduledExecutorService clientExecutorService
251+
) {
238252
RetryPolicy retryPolicy = SocketAccess.doPrivileged(
239253
() -> RetryPolicy.builder()
240254
.numRetries(clientSettings.maxRetries)
@@ -243,11 +257,12 @@ static ClientOverrideConfiguration buildOverrideConfiguration(final S3ClientSett
243257
)
244258
.build()
245259
);
260+
ClientOverrideConfiguration.Builder builder = ClientOverrideConfiguration.builder();
261+
if (clientExecutorService != null) {
262+
builder = builder.scheduledExecutorService(clientExecutorService);
263+
}
246264

247-
return ClientOverrideConfiguration.builder()
248-
.retryPolicy(retryPolicy)
249-
.apiCallAttemptTimeout(Duration.ofMillis(clientSettings.requestTimeoutMillis))
250-
.build();
265+
return builder.retryPolicy(retryPolicy).apiCallAttemptTimeout(Duration.ofMillis(clientSettings.requestTimeoutMillis)).build();
251266
}
252267

253268
// pkg private for tests

0 commit comments

Comments
 (0)