Skip to content

Commit 9fa7265

Browse files
authored
Merge branch 'main' into simd/arm-optimized-bulk
2 parents cfedef3 + f70dbb8 commit 9fa7265

File tree

36 files changed

+584
-24
lines changed

36 files changed

+584
-24
lines changed

docs/changelog/138632.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 138632
2+
summary: Correctly handle empty inputs in `chunkedInfer()`
3+
area: Machine Learning
4+
type: bug
5+
issues: []

muted-tests.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -445,9 +445,6 @@ tests:
445445
- class: org.elasticsearch.test.rest.yaml.CcsCommonYamlTestSuiteIT
446446
method: test {p0=search/160_exists_query/Test exists query on object field in empty index}
447447
issue: https://github.com/elastic/elasticsearch/issues/138733
448-
- class: org.elasticsearch.repositories.blobstore.testkit.analyze.S3RepositoryAnalysisStrongMpusRestIT
449-
method: testRepositoryAnalysis
450-
issue: https://github.com/elastic/elasticsearch/issues/138762
451448
- class: org.elasticsearch.xpack.inference.integration.AuthorizationTaskExecutorIT
452449
method: testCreatesEisChatCompletionEndpoint
453450
issue: https://github.com/elastic/elasticsearch/issues/138764

qa/ccs-common-rest/src/yamlRestTest/java/org/elasticsearch/test/rest/yaml/CcsCommonYamlTestSuiteIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public class CcsCommonYamlTestSuiteIT extends ESClientYamlSuiteTestCase {
9797
.setting("xpack.license.self_generated.type", "trial")
9898
.feature(FeatureFlag.TIME_SERIES_MODE)
9999
.feature(FeatureFlag.SYNTHETIC_VECTORS)
100+
.feature(FeatureFlag.DOC_VALUES_SKIPPER)
100101
.feature(FeatureFlag.GENERIC_VECTOR_FORMAT);
101102

102103
private static ElasticsearchCluster remoteCluster = ElasticsearchCluster.local()

qa/ccs-common-rest/src/yamlRestTest/java/org/elasticsearch/test/rest/yaml/RcsCcsCommonYamlTestSuiteIT.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public class RcsCcsCommonYamlTestSuiteIT extends ESClientYamlSuiteTestCase {
9797
.feature(FeatureFlag.TIME_SERIES_MODE)
9898
.feature(FeatureFlag.SYNTHETIC_VECTORS)
9999
.feature(FeatureFlag.GENERIC_VECTOR_FORMAT)
100+
.feature(FeatureFlag.DOC_VALUES_SKIPPER)
100101
.user("test_admin", "x-pack-test-password");
101102

102103
private static ElasticsearchCluster fulfillingCluster = ElasticsearchCluster.local()

test/framework/src/main/java/org/elasticsearch/index/mapper/MapperTestCase.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1853,6 +1853,7 @@ protected boolean supportsDocValuesSkippers() {
18531853

18541854
public void testDocValuesSkippers() throws IOException {
18551855
assumeTrue("Mapper does not support doc values skippers", supportsDocValuesSkippers());
1856+
assumeTrue("FeatureFlag disabled", IndexSettings.DOC_VALUES_SKIPPER);
18561857

18571858
IndexVersion preSkipperVersion = IndexVersionUtils.randomPreviousCompatibleVersion(
18581859
random(),

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/SenderService.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,18 @@ public void chunkedInfer(
149149
if (validationException.validationErrors().isEmpty() == false) {
150150
throw validationException;
151151
}
152-
153-
// a non-null query is not supported and is dropped by all providers
154-
doChunkedInfer(model, input, taskSettings, inputType, timeout, chunkedInferListener);
152+
if (supportsChunkedInfer()) {
153+
if (input.isEmpty()) {
154+
chunkedInferListener.onResponse(List.of());
155+
} else {
156+
// a non-null query is not supported and is dropped by all providers
157+
doChunkedInfer(model, input, taskSettings, inputType, timeout, chunkedInferListener);
158+
}
159+
} else {
160+
chunkedInferListener.onFailure(
161+
new UnsupportedOperationException(Strings.format("%s service does not support chunked inference", name()))
162+
);
163+
}
155164
}).addListener(listener);
156165
}
157166

@@ -183,6 +192,10 @@ protected abstract void doChunkedInfer(
183192
ActionListener<List<ChunkedInference>> listener
184193
);
185194

195+
protected boolean supportsChunkedInfer() {
196+
return true;
197+
}
198+
186199
public void start(Model model, ActionListener<Boolean> listener) {
187200
SubscribableListener.newForked(this::init)
188201
.<Boolean>andThen((doStartListener) -> doStart(model, doStartListener))

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/ai21/Ai21Service.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,9 +147,15 @@ protected void doChunkedInfer(
147147
TimeValue timeout,
148148
ActionListener<List<ChunkedInference>> listener
149149
) {
150+
// Should never be called
150151
throw new UnsupportedOperationException("AI21 service does not support chunked inference");
151152
}
152153

154+
@Override
155+
protected boolean supportsChunkedInfer() {
156+
return false;
157+
}
158+
153159
@Override
154160
public InferenceServiceConfiguration getConfiguration() {
155161
return Configuration.get();

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/anthropic/AnthropicService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,9 +218,15 @@ protected void doChunkedInfer(
218218
TimeValue timeout,
219219
ActionListener<List<ChunkedInference>> listener
220220
) {
221+
// Should never be called
221222
throw new UnsupportedOperationException("Anthropic service does not support chunked inference");
222223
}
223224

225+
@Override
226+
protected boolean supportsChunkedInfer() {
227+
return false;
228+
}
229+
224230
@Override
225231
public TransportVersion getMinimalSupportedVersion() {
226232
return TransportVersions.V_8_15_0;

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/contextualai/ContextualAiService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,15 @@ protected void doChunkedInfer(
185185
TimeValue timeout,
186186
ActionListener<List<ChunkedInference>> listener
187187
) {
188+
// Should never be called
188189
listener.onFailure(new ElasticsearchStatusException("Chunked inference is not supported for rerank task", RestStatus.BAD_REQUEST));
189190
}
190191

192+
@Override
193+
protected boolean supportsChunkedInfer() {
194+
return false;
195+
}
196+
191197
@Override
192198
protected void doUnifiedCompletionInfer(
193199
Model model,

x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/services/deepseek/DeepSeekService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,9 +122,15 @@ protected void doChunkedInfer(
122122
TimeValue timeout,
123123
ActionListener<List<ChunkedInference>> listener
124124
) {
125+
// Should never be called
125126
listener.onFailure(new UnsupportedOperationException(Strings.format("The %s service only supports unified completion", NAME)));
126127
}
127128

129+
@Override
130+
protected boolean supportsChunkedInfer() {
131+
return false;
132+
}
133+
128134
@Override
129135
public String name() {
130136
return NAME;

0 commit comments

Comments
 (0)