Skip to content

Commit 38d38c4

Browse files
authored
Merge branch '9.0' into backport/9.0/pr-132932
2 parents a8f5593 + 97556df commit 38d38c4

File tree

13 files changed

+107
-132
lines changed

13 files changed

+107
-132
lines changed

build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/toolchain/OracleOpenJdkToolchainResolverSpec.groovy

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class OracleOpenJdkToolchainResolverSpec extends AbstractToolchainResolverSpec {
3535
"36",
3636
"bdc68b4b9cbc4ebcb30745c85038d91d"
3737
),
38-
OracleOpenJdkToolchainResolver.getBundledJdkBuild("24+36@1f9ff9062db4449d8ca828c504ffae90", "24"),
38+
OracleOpenJdkToolchainResolver.getBundledJdkBuild("24.0.2+12@fdc5d0102fe0414db21410ad5834341f", "24"),
3939
]
4040
toolChain
4141
}
@@ -52,16 +52,16 @@ class OracleOpenJdkToolchainResolverSpec extends AbstractToolchainResolverSpec {
5252
[20, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_linux-aarch64_bin.tar.gz"],
5353
[20, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_windows-x64_bin.zip"],
5454
// bundled jdk
55-
[24, ORACLE, MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
56-
[24, ORACLE, MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
57-
[24, ORACLE, LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
58-
[24, ORACLE, LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
59-
[24, ORACLE, WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"],
60-
[24, anyVendor(), MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-x64_bin.tar.gz"],
61-
[24, anyVendor(), MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_macos-aarch64_bin.tar.gz"],
62-
[24, anyVendor(), LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-x64_bin.tar.gz"],
63-
[24, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_linux-aarch64_bin.tar.gz"],
64-
[24, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24/1f9ff9062db4449d8ca828c504ffae90/36/GPL/openjdk-24_windows-x64_bin.zip"]
55+
[24, ORACLE, MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-x64_bin.tar.gz"],
56+
[24, ORACLE, MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-aarch64_bin.tar.gz"],
57+
[24, ORACLE, LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz"],
58+
[24, ORACLE, LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz"],
59+
[24, ORACLE, WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_windows-x64_bin.zip"],
60+
[24, anyVendor(), MAC_OS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-x64_bin.tar.gz"],
61+
[24, anyVendor(), MAC_OS, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_macos-aarch64_bin.tar.gz"],
62+
[24, anyVendor(), LINUX, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-x64_bin.tar.gz"],
63+
[24, anyVendor(), LINUX, AARCH64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_linux-aarch64_bin.tar.gz"],
64+
[24, anyVendor(), WINDOWS, X86_64, "https://download.oracle.com/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_windows-x64_bin.zip"]
6565
]
6666
}
6767

build-tools-internal/version.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ elasticsearch = 9.0.6
22
lucene = 10.1.0
33

44
bundled_jdk_vendor = openjdk
5-
bundled_jdk = 24+36@1f9ff9062db4449d8ca828c504ffae90
5+
bundled_jdk = 24.0.2+12@fdc5d0102fe0414db21410ad5834341f
66
# optional dependencies
77
spatial4j = 0.7
88
jts = 1.15.0

build-tools/src/main/java/org/elasticsearch/gradle/LazyFileOutputStream.java

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
* or more contributor license agreements. Licensed under the "Elastic License
44
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
55
* Public License v 1"; you may not use this file except in compliance with, at
6-
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7-
* License v3.0 only", or the "Server Side Public License, v 1".
6+
* your election, the "Server Side Public License v3.0 only", or the "Server Side Public License, v 1".
87
*/
98

109
package org.elasticsearch.gradle;
@@ -18,48 +17,58 @@
1817
* An outputstream to a File that is lazily opened on the first write.
1918
*/
2019
class LazyFileOutputStream extends OutputStream {
21-
private OutputStream delegate;
20+
private final File file;
21+
private volatile OutputStream delegate;
22+
private volatile boolean initialized = false;
23+
private final Object lock = new Object();
2224

2325
LazyFileOutputStream(File file) {
24-
// use an initial dummy delegate to avoid doing a conditional on every write
25-
this.delegate = new OutputStream() {
26-
private void bootstrap() throws IOException {
27-
file.getParentFile().mkdirs();
28-
delegate = new FileOutputStream(file);
29-
}
30-
31-
@Override
32-
public void write(int b) throws IOException {
33-
bootstrap();
34-
delegate.write(b);
35-
}
36-
37-
@Override
38-
public void write(byte b[], int off, int len) throws IOException {
39-
bootstrap();
40-
delegate.write(b, off, len);
41-
}
26+
this.file = file;
27+
}
4228

43-
@Override
44-
public void write(byte b[]) throws IOException {
45-
bootstrap();
46-
delegate.write(b);
29+
private void ensureInitialized() throws IOException {
30+
if (initialized == false) {
31+
synchronized (lock) {
32+
if (initialized == false) {
33+
file.getParentFile().mkdirs();
34+
delegate = new FileOutputStream(file);
35+
initialized = true;
36+
}
4737
}
48-
};
38+
}
4939
}
5040

5141
@Override
5242
public void write(int b) throws IOException {
43+
ensureInitialized();
5344
delegate.write(b);
5445
}
5546

5647
@Override
5748
public void write(byte b[], int off, int len) throws IOException {
49+
ensureInitialized();
5850
delegate.write(b, off, len);
5951
}
6052

53+
@Override
54+
public void write(byte b[]) throws IOException {
55+
ensureInitialized();
56+
delegate.write(b);
57+
}
58+
6159
@Override
6260
public void close() throws IOException {
63-
delegate.close();
61+
synchronized (lock) {
62+
if (initialized && delegate != null) {
63+
delegate.close();
64+
}
65+
}
66+
}
67+
68+
@Override
69+
public void flush() throws IOException {
70+
if (initialized && delegate != null) {
71+
delegate.flush();
72+
}
6473
}
6574
}

distribution/docker/src/docker/dockerfiles/cloud_ess_fips/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# Extract Elasticsearch artifact
2525
################################################################################
2626
27-
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:095d86fb264539fd60102991fa439c3d9737b2aaaf942c059d1d674b5abf64ab AS builder
27+
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:173cd032e2a8b194c04e08f605b40c743cc52f8eb4ecfc9c5e3280ae97c119b4 AS builder
2828
2929
# Install required packages to extract the Elasticsearch distribution
3030
RUN <%= retry.loop(package_manager, "export DEBIAN_FRONTEND=noninteractive && ${package_manager} update && ${package_manager} update && ${package_manager} add --no-cache curl") %>
@@ -103,7 +103,7 @@ WORKDIR /usr/share/elasticsearch/config
103103
# Add entrypoint
104104
################################################################################
105105

106-
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:095d86fb264539fd60102991fa439c3d9737b2aaaf942c059d1d674b5abf64ab
106+
FROM docker.elastic.co/wolfi/chainguard-base-fips:latest@sha256:173cd032e2a8b194c04e08f605b40c743cc52f8eb4ecfc9c5e3280ae97c119b4
107107

108108
RUN <%= retry.loop(package_manager,
109109
"export DEBIAN_FRONTEND=noninteractive && \n" +

distribution/docker/src/docker/dockerfiles/wolfi/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# Extract Elasticsearch artifact
2525
################################################################################
2626
27-
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:3b2026fffccfc6223a9f49f09279e044008b64e30b948cee17f9a74143a2c850 AS builder
27+
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:45d6016686787642209440ee29f410a125d2392e6752701cb9960f0ac0c80c1d AS builder
2828
2929
# Install required packages to extract the Elasticsearch distribution
3030
RUN <%= retry.loop(package_manager, "export DEBIAN_FRONTEND=noninteractive && ${package_manager} update && ${package_manager} update && ${package_manager} add --no-cache curl") %>
@@ -79,7 +79,7 @@ RUN sed -i -e 's/ES_DISTRIBUTION_TYPE=tar/ES_DISTRIBUTION_TYPE=docker/' bin/elas
7979
# Add entrypoint
8080
################################################################################
8181

82-
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:3b2026fffccfc6223a9f49f09279e044008b64e30b948cee17f9a74143a2c850
82+
FROM docker.elastic.co/wolfi/chainguard-base:latest@sha256:45d6016686787642209440ee29f410a125d2392e6752701cb9960f0ac0c80c1d
8383

8484
RUN <%= retry.loop(package_manager,
8585
"export DEBIAN_FRONTEND=noninteractive && \n" +

docs/changelog/133004.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 133004
2+
summary: Limit frequency of feature last-used time updates
3+
area: License
4+
type: bug
5+
issues: []

docs/changelog/133113.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 133113
2+
summary: Limit the depth of a filter
3+
area: Infra/REST API
4+
type: enhancement
5+
issues: []

docs/changelog/133119.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
pr: 133119
2+
summary: Update bundled JDK to Java 24.0.2+12
3+
area: Packaging
4+
type: upgrade
5+
issues: []

gradle/verification-metadata.xml

Lines changed: 1 addition & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@
77
<trust group="beats" name="filebeat"/>
88
<trust group="beats" name="metricbeat"/>
99
<trust group="elasticsearch-distribution" name="elasticsearch"/>
10-
<trust group="openjdk_.*" regex="true"/>
1110
<trust group="org.elasticsearch"/>
1211
<trust group="org.elasticsearch.distribution.zip" name="elasticsearch"/>
1312
<trust group="org.elasticsearch.ml"/>
1413
<trust group="org.elasticsearch.plugin"/>
1514
<trust file=".*-javadoc[.]jar" regex="true"/>
1615
<trust file=".*-sources[.]jar" regex="true"/>
16+
<trust group="openjdk_.*" regex="true"/>
1717
</trusted-artifacts>
1818
</configuration>
1919
<components>
@@ -1840,90 +1840,6 @@
18401840
<sha256 value="0a4aa0f2606bd6292a7ccd7d67a0db914bf5874dfb8a6184df3e6d63cdc93702" origin="Generated by Gradle"/>
18411841
</artifact>
18421842
</component>
1843-
<component group="openjdk_21" name="linux" version="21.0.2">
1844-
<artifact name="linux-21.0.2-aarch64.tar.gz">
1845-
<sha256 value="08db1392a48d4eb5ea5315cf8f18b89dbaf36cda663ba882cf03c704c9257ec2" origin="Generated by Gradle"/>
1846-
</artifact>
1847-
<artifact name="linux-21.0.2-x64.tar.gz">
1848-
<sha256 value="a2def047a73941e01a73739f92755f86b895811afb1f91243db214cff5bdac3f" origin="Generated by Gradle"/>
1849-
</artifact>
1850-
</component>
1851-
<component group="openjdk_21" name="macos" version="21.0.2">
1852-
<artifact name="macos-21.0.2-aarch64.tar.gz">
1853-
<sha256 value="b3d588e16ec1e0ef9805d8a696591bd518a5cea62567da8f53b5ce32d11d22e4" origin="Generated by Gradle"/>
1854-
</artifact>
1855-
<artifact name="macos-21.0.2-x64.tar.gz">
1856-
<sha256 value="8fd09e15dc406387a0aba70bf5d99692874e999bf9cd9208b452b5d76ac922d3" origin="Generated by Gradle"/>
1857-
</artifact>
1858-
</component>
1859-
<component group="openjdk_21" name="windows" version="21.0.2">
1860-
<artifact name="windows-21.0.2-x64.zip">
1861-
<sha256 value="b6c17e747ae78cdd6de4d7532b3164b277daee97c007d3eaa2b39cca99882664" origin="Generated by Gradle"/>
1862-
</artifact>
1863-
</component>
1864-
<component group="openjdk_22" name="linux" version="22.0.1">
1865-
<artifact name="linux-22.0.1-aarch64.tar.gz">
1866-
<sha256 value="0887c42b9897f889415a6f7b88549d38af99f6ef2d1117199de012beab0631eb" origin="Generated by Gradle"/>
1867-
</artifact>
1868-
<artifact name="linux-22.0.1-x64.tar.gz">
1869-
<sha256 value="133c8b65113304904cdef7c9103274d141cfb64b191ff48ceb6528aca25c67b1" origin="Generated by Gradle"/>
1870-
</artifact>
1871-
</component>
1872-
<component group="openjdk_22" name="macos" version="22.0.1">
1873-
<artifact name="macos-22.0.1-aarch64.tar.gz">
1874-
<sha256 value="b949a3bc13e3c5152ab55d12e699dfa6c8b00bedeb8302b13be4aec3ee734351" origin="Generated by Gradle"/>
1875-
</artifact>
1876-
<artifact name="macos-22.0.1-x64.tar.gz">
1877-
<sha256 value="5daa4f9894cc3a617a5f9fe2c48e5391d3a2e672c91e1597041672f57696846f" origin="Generated by Gradle"/>
1878-
</artifact>
1879-
</component>
1880-
<component group="openjdk_22" name="windows" version="22.0.1">
1881-
<artifact name="windows-22.0.1-x64.zip">
1882-
<sha256 value="de7f00fd1bd0d3a4c678fff2681dfad19284d74d357218a4be6f623488d040da" origin="Generated by Gradle"/>
1883-
</artifact>
1884-
</component>
1885-
<component group="openjdk_23" name="linux" version="23">
1886-
<artifact name="linux-23-aarch64.tar.gz">
1887-
<sha256 value="076dcf7078cdf941951587bf92733abacf489a6570f1df97ee35945ffebec5b7" origin="Generated by Gradle"/>
1888-
</artifact>
1889-
<artifact name="linux-23-x64.tar.gz">
1890-
<sha256 value="08fea92724127c6fa0f2e5ea0b07ff4951ccb1e2f22db3c21eebbd7347152a67" origin="Generated by Gradle"/>
1891-
</artifact>
1892-
</component>
1893-
<component group="openjdk_23" name="macos" version="23">
1894-
<artifact name="macos-23-aarch64.tar.gz">
1895-
<sha256 value="9527bf080a74ae6dca51df413aa826f0c011c6048885e4c8ad112172be8815f3" origin="Generated by Gradle"/>
1896-
</artifact>
1897-
<artifact name="macos-23-x64.tar.gz">
1898-
<sha256 value="5c3a909fd2079d0e376dd43c85c4f7d02d08914866f196480bd47784b2a0121e" origin="Generated by Gradle"/>
1899-
</artifact>
1900-
</component>
1901-
<component group="openjdk_23" name="windows" version="23">
1902-
<artifact name="windows-23-x64.zip">
1903-
<sha256 value="cba5013874ba50cae543c86fe6423453816c77281e2751a8a9a633d966f1dc04" origin="Generated by Gradle"/>
1904-
</artifact>
1905-
</component>
1906-
<component group="openjdk_24" name="linux" version="24">
1907-
<artifact name="linux-24-aarch64.tar.gz">
1908-
<sha256 value="a03867ed061c7bb661231e62b0967ff5a5a0b1bbaa37bdead3a924bd2ba3215f" origin="Generated by Gradle"/>
1909-
</artifact>
1910-
<artifact name="linux-24-x64.tar.gz">
1911-
<sha256 value="88b090fa80c6c1d084ec9a755233967458788e2c0777ae2e172230c5c692d7ef" origin="Generated by Gradle"/>
1912-
</artifact>
1913-
</component>
1914-
<component group="openjdk_24" name="macos" version="24">
1915-
<artifact name="macos-24-aarch64.tar.gz">
1916-
<sha256 value="f7133238a12714a62c5ad2bd4da6741130be1a82512065da9ca23dee26b2d3d3" origin="Generated by Gradle"/>
1917-
</artifact>
1918-
<artifact name="macos-24-x64.tar.gz">
1919-
<sha256 value="6bbfb1d01741cbe55ab90299cb91464b695de9a3ace85c15131aa2f50292f321" origin="Generated by Gradle"/>
1920-
</artifact>
1921-
</component>
1922-
<component group="openjdk_24" name="windows" version="24">
1923-
<artifact name="windows-24-x64.zip">
1924-
<sha256 value="11d1d9f6ac272d5361c8a0bef01894364081c7fb1a6914c2ad2fc312ae83d63b" origin="Generated by Gradle"/>
1925-
</artifact>
1926-
</component>
19271843
<component group="org.abego.treelayout" name="org.abego.treelayout.core" version="1.0.3">
19281844
<artifact name="org.abego.treelayout.core-1.0.3.jar">
19291845
<sha256 value="fa5e31395c39c2e7d46aca0f81f72060931607b2fa41bd36038eb2cb6fb93326" origin="Generated by Gradle"/>

libs/x-content/src/main/java/org/elasticsearch/xcontent/support/filtering/FilterPath.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ public class FilterPath {
2222
private static final String WILDCARD = "*";
2323
private static final String DOUBLE_WILDCARD = "**";
2424

25+
// This is ridiculously large, but we can be 100% certain that if any filter tries to exceed this depth then it is a mistake
26+
static final int MAX_TREE_DEPTH = 500;
27+
2528
private final Map<String, FilterPath> termsChildren;
2629
private final FilterPath[] wildcardChildren;
2730
private final String pattern;
@@ -132,6 +135,7 @@ private boolean matchFieldNamesWithDots(String name, int dotIndex, List<FilterPa
132135
}
133136

134137
private static class FilterPathBuilder {
138+
135139
private static class BuildNode {
136140
private final Map<String, BuildNode> children;
137141
private final boolean isFinalNode;
@@ -145,14 +149,19 @@ private static class BuildNode {
145149
private final BuildNode root = new BuildNode(false);
146150

147151
void insert(String filter) {
148-
insertNode(filter, root);
152+
insertNode(filter, root, 0);
149153
}
150154

151155
FilterPath build() {
152156
return buildPath("", root);
153157
}
154158

155-
static void insertNode(String filter, BuildNode node) {
159+
static void insertNode(String filter, BuildNode node, int depth) {
160+
if (depth > MAX_TREE_DEPTH) {
161+
throw new IllegalArgumentException(
162+
"Filter exceeds maximum depth at [" + (filter.length() > 100 ? filter.substring(0, 100) : filter) + "]"
163+
);
164+
}
156165
int end = filter.length();
157166
int splitPosition = -1;
158167
boolean findEscapes = false;
@@ -171,7 +180,7 @@ static void insertNode(String filter, BuildNode node) {
171180
String field = findEscapes ? filter.substring(0, splitPosition).replace("\\.", ".") : filter.substring(0, splitPosition);
172181
BuildNode child = node.children.computeIfAbsent(field, f -> new BuildNode(false));
173182
if (false == child.isFinalNode) {
174-
insertNode(filter.substring(splitPosition + 1), child);
183+
insertNode(filter.substring(splitPosition + 1), child, depth + 1);
175184
}
176185
} else {
177186
String field = findEscapes ? filter.replace("\\.", ".") : filter;

0 commit comments

Comments
 (0)