Skip to content

Commit 4cbc0c3

Browse files
Merge branch '9.0' into build/jdk24_rc_default
2 parents 50506a1 + 1e5145b commit 4cbc0c3

File tree

64 files changed

+610
-387
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+610
-387
lines changed

docs/changelog/123296.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 123296
2+
summary: Avoid over collecting in Limit or Lucene Operator
3+
area: ES|QL
4+
type: bug
5+
issues: []

libs/entitlement/src/main/java/org/elasticsearch/entitlement/bootstrap/EntitlementBootstrap.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,7 @@ public class EntitlementBootstrap {
3535
public record BootstrapArgs(
3636
Map<String, Policy> pluginPolicies,
3737
Function<Class<?>, String> pluginResolver,
38-
Function<String, String> settingResolver,
39-
Function<String, Stream<String>> settingGlobResolver,
38+
Function<String, Stream<String>> settingResolver,
4039
Path[] dataDirs,
4140
Path[] sharedRepoDirs,
4241
Path configDir,
@@ -51,7 +50,6 @@ public record BootstrapArgs(
5150
requireNonNull(pluginPolicies);
5251
requireNonNull(pluginResolver);
5352
requireNonNull(settingResolver);
54-
requireNonNull(settingGlobResolver);
5553
requireNonNull(dataDirs);
5654
if (dataDirs.length == 0) {
5755
throw new IllegalArgumentException("must provide at least one data directory");
@@ -78,8 +76,7 @@ public static BootstrapArgs bootstrapArgs() {
7876
*
7977
* @param pluginPolicies a map holding policies for plugins (and modules), by plugin (or module) name.
8078
* @param pluginResolver a functor to map a Java Class to the plugin it belongs to (the plugin name).
81-
* @param settingResolver a functor to resolve the value of an Elasticsearch setting.
82-
* @param settingGlobResolver a functor to resolve a glob expression for one or more Elasticsearch settings.
79+
* @param settingResolver a functor to resolve a setting name pattern for one or more Elasticsearch settings.
8380
* @param dataDirs data directories for Elasticsearch
8481
* @param sharedRepoDirs shared repository directories for Elasticsearch
8582
* @param configDir the config directory for Elasticsearch
@@ -93,8 +90,7 @@ public static BootstrapArgs bootstrapArgs() {
9390
public static void bootstrap(
9491
Map<String, Policy> pluginPolicies,
9592
Function<Class<?>, String> pluginResolver,
96-
Function<String, String> settingResolver,
97-
Function<String, Stream<String>> settingGlobResolver,
93+
Function<String, Stream<String>> settingResolver,
9894
Path[] dataDirs,
9995
Path[] sharedRepoDirs,
10096
Path configDir,
@@ -113,7 +109,6 @@ public static void bootstrap(
113109
pluginPolicies,
114110
pluginResolver,
115111
settingResolver,
116-
settingGlobResolver,
117112
dataDirs,
118113
sharedRepoDirs,
119114
configDir,

libs/entitlement/src/main/java/org/elasticsearch/entitlement/initialization/EntitlementInitialization.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,8 +144,7 @@ private static PolicyManager createPolicyManager() {
144144
bootstrapArgs.dataDirs(),
145145
bootstrapArgs.sharedRepoDirs(),
146146
bootstrapArgs.tempDir(),
147-
bootstrapArgs.settingResolver(),
148-
bootstrapArgs.settingGlobResolver()
147+
bootstrapArgs.settingResolver()
149148
);
150149

151150
List<Scope> serverScopes = new ArrayList<>();

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/PathLookup.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,5 @@ public record PathLookup(
1919
Path[] dataDirs,
2020
Path[] sharedRepoDirs,
2121
Path tempDir,
22-
Function<String, String> settingResolver,
23-
Function<String, Stream<String>> settingGlobResolver
22+
Function<String, Stream<String>> settingResolver
2423
) {}

libs/entitlement/src/main/java/org/elasticsearch/entitlement/runtime/policy/entitlements/FilesEntitlement.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -232,13 +232,7 @@ public PathSettingFileData withExclusive(boolean exclusive) {
232232

233233
@Override
234234
public Stream<Path> resolveRelativePaths(PathLookup pathLookup) {
235-
Stream<String> result;
236-
if (setting.contains("*")) {
237-
result = pathLookup.settingGlobResolver().apply(setting);
238-
} else {
239-
String path = pathLookup.settingResolver().apply(setting);
240-
result = path == null ? Stream.of() : Stream.of(path);
241-
}
235+
Stream<String> result = pathLookup.settingResolver().apply(setting);
242236
if (ignoreUrl) {
243237
result = result.filter(s -> s.toLowerCase(Locale.ROOT).startsWith("https://") == false);
244238
}

libs/entitlement/src/test/java/org/elasticsearch/entitlement/runtime/policy/FileAccessTreeTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ private static Path path(String s) {
5050
new Path[] { Path.of("/data1"), Path.of("/data2") },
5151
new Path[] { Path.of("/shared1"), Path.of("/shared2") },
5252
Path.of("/tmp"),
53-
setting -> settings.get(setting),
54-
glob -> settings.getGlobValues(glob)
53+
pattern -> settings.getValues(pattern)
5554
);
5655

5756
public void testEmpty() {

libs/entitlement/src/test/java/org/elasticsearch/entitlement/runtime/policy/PolicyManagerTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,7 @@ public static void beforeClass() {
7171
new Path[] { TEST_BASE_DIR.resolve("/data1/"), TEST_BASE_DIR.resolve("/data2") },
7272
new Path[] { TEST_BASE_DIR.resolve("/shared1"), TEST_BASE_DIR.resolve("/shared2") },
7373
TEST_BASE_DIR.resolve("/temp"),
74-
Settings.EMPTY::get,
75-
Settings.EMPTY::getGlobValues
74+
Settings.EMPTY::getValues
7675
);
7776
} catch (Exception e) {
7877
throw new IllegalStateException(e);

libs/entitlement/src/test/java/org/elasticsearch/entitlement/runtime/policy/entitlements/FilesEntitlementTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,7 @@ public static void setupRoot() {
4848
new Path[] { Path.of("/data1"), Path.of("/data2") },
4949
new Path[] { Path.of("/shared1"), Path.of("/shared2") },
5050
Path.of("/tmp"),
51-
setting -> settings.get(setting),
52-
glob -> settings.getGlobValues(glob)
51+
pattern -> settings.getValues(pattern)
5352
);
5453

5554
public void testEmptyBuild() {

server/src/main/java/org/elasticsearch/TransportVersion.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,23 @@ public boolean isKnown() {
126126
return VersionsHolder.ALL_VERSIONS_MAP.containsKey(id);
127127
}
128128

129+
/**
130+
* @return the newest known {@link TransportVersion} which is no older than this instance. Returns {@link TransportVersions#ZERO} if
131+
* there are no such versions.
132+
*/
133+
public TransportVersion bestKnownVersion() {
134+
if (VersionsHolder.ALL_VERSIONS_MAP.containsKey(id)) {
135+
return this;
136+
}
137+
TransportVersion bestSoFar = TransportVersions.ZERO;
138+
for (final var knownVersion : VersionsHolder.ALL_VERSIONS_MAP.values()) {
139+
if (knownVersion.after(bestSoFar) && knownVersion.before(this)) {
140+
bestSoFar = knownVersion;
141+
}
142+
}
143+
return bestSoFar;
144+
}
145+
129146
public static TransportVersion fromString(String str) {
130147
return TransportVersion.fromId(Integer.parseInt(str));
131148
}

server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,8 +248,7 @@ private static void initPhase2(Bootstrap bootstrap) throws IOException {
248248
EntitlementBootstrap.bootstrap(
249249
pluginPolicies,
250250
pluginsResolver::resolveClassToPluginName,
251-
nodeEnv.settings()::get,
252-
nodeEnv.settings()::getGlobValues,
251+
nodeEnv.settings()::getValues,
253252
nodeEnv.dataDirs(),
254253
nodeEnv.repoDirs(),
255254
nodeEnv.configDir(),

0 commit comments

Comments
 (0)