Skip to content

Commit ab98843

Browse files
authored
Merge branch '8.19' into backport/8.19/pr-135510
2 parents dc8eaf4 + 8249339 commit ab98843

File tree

126 files changed

+2161
-621
lines changed

Some content is hidden

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

126 files changed

+2161
-621
lines changed

.buildkite/pipelines/periodic.template.yml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ steps:
4444
matrix:
4545
setup:
4646
ES_RUNTIME_JAVA:
47-
- openjdk17
4847
- adoptopenjdk17
4948
GRADLE_TASK:
5049
- checkPart1
@@ -56,7 +55,7 @@ steps:
5655
- checkRestCompat
5756
agents:
5857
provider: gcp
59-
image: family/elasticsearch-ubuntu-2204
58+
image: family/elasticsearch-ubuntu-2404
6059
machineType: n1-standard-32
6160
buildDirectory: /dev/shm/bk
6261
env:
@@ -68,12 +67,11 @@ steps:
6867
matrix:
6968
setup:
7069
ES_RUNTIME_JAVA:
71-
- openjdk17
7270
- adoptopenjdk17
7371
BWC_VERSION: $BWC_LIST
7472
agents:
7573
provider: gcp
76-
image: family/elasticsearch-ubuntu-2204
74+
image: family/elasticsearch-ubuntu-2404
7775
machineType: n1-standard-32
7876
buildDirectory: /dev/shm/bk
7977
env:
@@ -88,7 +86,6 @@ steps:
8886
setup:
8987
ES_RUNTIME_JAVA:
9088
- graalvm-ce17
91-
- openjdk17
9289
- adoptopenjdk17
9390
- openjdk21
9491
- openjdk22
@@ -103,7 +100,7 @@ steps:
103100
- checkRestCompat
104101
agents:
105102
provider: gcp
106-
image: family/elasticsearch-ubuntu-2204
103+
image: family/elasticsearch-ubuntu-2404
107104
machineType: n1-standard-32
108105
buildDirectory: /dev/shm/bk
109106
env:
@@ -116,15 +113,14 @@ steps:
116113
setup:
117114
ES_RUNTIME_JAVA:
118115
- graalvm-ce17
119-
- openjdk17
120116
- adoptopenjdk17
121117
- openjdk21
122118
- openjdk22
123119
- openjdk23
124120
BWC_VERSION: $BWC_LIST
125121
agents:
126122
provider: gcp
127-
image: family/elasticsearch-ubuntu-2204
123+
image: family/elasticsearch-ubuntu-2404
128124
machineType: n1-standard-32
129125
buildDirectory: /dev/shm/bk
130126
env:

.buildkite/pipelines/periodic.yml

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,6 @@ steps:
767767
matrix:
768768
setup:
769769
ES_RUNTIME_JAVA:
770-
- openjdk17
771770
- adoptopenjdk17
772771
GRADLE_TASK:
773772
- checkPart1
@@ -779,7 +778,7 @@ steps:
779778
- checkRestCompat
780779
agents:
781780
provider: gcp
782-
image: family/elasticsearch-ubuntu-2204
781+
image: family/elasticsearch-ubuntu-2404
783782
machineType: n1-standard-32
784783
buildDirectory: /dev/shm/bk
785784
env:
@@ -791,12 +790,11 @@ steps:
791790
matrix:
792791
setup:
793792
ES_RUNTIME_JAVA:
794-
- openjdk17
795793
- adoptopenjdk17
796794
BWC_VERSION: ["7.17.30", "8.18.8", "8.19.5"]
797795
agents:
798796
provider: gcp
799-
image: family/elasticsearch-ubuntu-2204
797+
image: family/elasticsearch-ubuntu-2404
800798
machineType: n1-standard-32
801799
buildDirectory: /dev/shm/bk
802800
env:
@@ -811,7 +809,6 @@ steps:
811809
setup:
812810
ES_RUNTIME_JAVA:
813811
- graalvm-ce17
814-
- openjdk17
815812
- adoptopenjdk17
816813
- openjdk21
817814
- openjdk22
@@ -826,7 +823,7 @@ steps:
826823
- checkRestCompat
827824
agents:
828825
provider: gcp
829-
image: family/elasticsearch-ubuntu-2204
826+
image: family/elasticsearch-ubuntu-2404
830827
machineType: n1-standard-32
831828
buildDirectory: /dev/shm/bk
832829
env:
@@ -839,15 +836,14 @@ steps:
839836
setup:
840837
ES_RUNTIME_JAVA:
841838
- graalvm-ce17
842-
- openjdk17
843839
- adoptopenjdk17
844840
- openjdk21
845841
- openjdk22
846842
- openjdk23
847843
BWC_VERSION: ["7.17.30", "8.18.8", "8.19.5"]
848844
agents:
849845
provider: gcp
850-
image: family/elasticsearch-ubuntu-2204
846+
image: family/elasticsearch-ubuntu-2404
851847
machineType: n1-standard-32
852848
buildDirectory: /dev/shm/bk
853849
env:

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/AbstractTransportVersionFuncTest.groovy

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,6 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest {
115115
include ':myserver'
116116
include ':myplugin'
117117
"""
118-
propertiesFile << """
119-
org.elasticsearch.transports.upstreamRef=main
120-
"""
121118
versionPropertiesFile.text = versionPropertiesFile.text.replace("9.1.0", "9.2.0")
122119

123120
file("myserver/build.gradle") << """

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/ResolveTransportVersionConflictFuncTest.groovy

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,44 @@ class ResolveTransportVersionConflictFuncTest extends AbstractTransportVersionFu
8787
assertUpperBound("9.1", "new_tv,8012002")
8888
assertUpperBound("8.19", "new_tv,7123002")
8989
}
90+
91+
def "no new transport version is idempotent"() {
92+
when:
93+
def result = runResolveAndValidateTask().build()
94+
95+
then:
96+
assertResolveAndValidateSuccess(result)
97+
assertUpperBound("9.2", "existing_92,8123000")
98+
}
99+
100+
def "upstream changes don't affect merge"() {
101+
given:
102+
// setup main with 2 commits, but we will only merge in the first one
103+
execute("git checkout main")
104+
referableAndReferencedTransportVersion("upstream_new_tv1", "8124000")
105+
transportVersionUpperBound("9.2", "upstream_new_tv1", "8124000")
106+
execute("git add .")
107+
execute("git commit -m update1")
108+
String toMerge = execute("git rev-parse HEAD")
109+
referableAndReferencedTransportVersion("upstream_new_tv2", "8125000")
110+
transportVersionUpperBound("9.2", "upstream_new_tv2", "8125000")
111+
execute("git add .")
112+
execute("git commit -m update2")
113+
execute("git checkout test")
114+
// now commit a conflict on the test branch, a new TV
115+
referableAndReferencedTransportVersion("branch_new_tv", "8124000")
116+
transportVersionUpperBound("9.2", "branch_new_tv", "8124000")
117+
execute("git add .")
118+
execute("git commit -m branch")
119+
// and finally initiate the merge
120+
System.out.println("Merging commit " + toMerge);
121+
execute("git merge " + toMerge, testProjectDir.root, true);
122+
123+
when:
124+
def result = runResolveAndValidateTask().build()
125+
126+
then:
127+
assertResolveAndValidateSuccess(result)
128+
assertUpperBound("9.2", "branch_new_tv,8125000")
129+
}
90130
}

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/TransportVersionGenerationFuncTest.groovy

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,6 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
9090
assertUpperBound("9.2", "new_tv,8124000")
9191
}
9292

93-
/*
94-
temporarily muted, see https://github.com/elastic/elasticsearch/pull/135226
95-
9693
def "invalid changes to a upper bounds should be reverted"() {
9794
given:
9895
transportVersionUpperBound("9.2", "modification", "9000000")
@@ -147,7 +144,7 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
147144
assertReferableDefinitionDoesNotExist("test_tv")
148145
assertUpperBound("9.2", "existing_92,8123000")
149146
assertUpperBound("9.1", "existing_92,8012001")
150-
}*/
147+
}
151148

152149
def "a reference can be renamed"() {
153150
given:
@@ -245,11 +242,8 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
245242
def "unreferenced definitions are removed"() {
246243
given:
247244
referableTransportVersion("test_tv", "8124000,8012002")
248-
/*
249-
TODO: reset of upper bounds
250245
transportVersionUpperBound("9.2", "test_tv", "8124000")
251246
transportVersionUpperBound("9.1", "test_tv", "8012002")
252-
*/
253247

254248
when:
255249
def result = runGenerateAndValidateTask().build()
@@ -412,8 +406,6 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
412406
assertUpperBound("9.2", "new_tv,8124000")
413407
}
414408

415-
/*
416-
TODO: reset of upper bounds
417409
def "deleted upper bounds files are restored"() {
418410
given:
419411
file("myserver/src/main/resources/transport/upper_bounds/9.2.csv").delete()
@@ -424,11 +416,11 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
424416
then:
425417
assertGenerateAndValidateSuccess(result)
426418
assertUpperBound("9.2", "existing_92,8123000")
427-
}*/
419+
}
428420

429421
def "upper bounds files must exist for backport branches"() {
430422
when:
431-
def result = runGenerateTask("--backport-branches=9.1,8.13,7.17,6.0").buildAndFail()
423+
def result = runGenerateTask("--name", "new_tv", "--backport-branches=9.1,8.13,7.17,6.0").buildAndFail()
432424

433425
then:
434426
assertGenerateFailure(result, "Missing upper bounds files for branches [6.0, 7.17, 8.13], known branches are [8.19, 9.0, 9.1, 9.2]")
@@ -504,4 +496,21 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
504496
assertUpperBound("9.2", "new_tv,8124000")
505497
assertReferableDefinition("new_tv", "8124000")
506498
}
499+
500+
def "generation is idempotent on upstream changes"() {
501+
given:
502+
execute("git checkout main")
503+
referableAndReferencedTransportVersion("new_tv", "8124000")
504+
transportVersionUpperBound("9.2", "new_tv", "8124000")
505+
execute("git add .")
506+
execute("git commit -m update")
507+
execute("git checkout test")
508+
509+
when:
510+
def result = runGenerateAndValidateTask().build()
511+
512+
then:
513+
assertGenerateAndValidateSuccess(result)
514+
assertUpperBound("9.2", "existing_92,8123000")
515+
}
507516
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/InternalTestClustersPlugin.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111

1212
import org.elasticsearch.gradle.VersionProperties;
1313
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
14-
import org.elasticsearch.gradle.testclusters.ElasticsearchCluster;
1514
import org.elasticsearch.gradle.testclusters.TestClustersPlugin;
16-
import org.gradle.api.NamedDomainObjectContainer;
1715
import org.gradle.api.Plugin;
1816
import org.gradle.api.Project;
1917

@@ -33,17 +31,5 @@ public void apply(Project project) {
3331
version -> (version.equals(VersionProperties.getElasticsearchVersion()) && buildParams.getSnapshotBuild() == false)
3432
|| buildParams.getBwcVersions().unreleasedInfo(version) == null
3533
);
36-
37-
NamedDomainObjectContainer<ElasticsearchCluster> testClusters = (NamedDomainObjectContainer<ElasticsearchCluster>) project
38-
.getExtensions()
39-
.getByName(TestClustersPlugin.EXTENSION_NAME);
40-
// Limit the number of allocated processors for all nodes to 2 in the cluster by default.
41-
// This is to ensure that the tests run consistently across different environments.
42-
String processorCount = shouldConfigureTestClustersWithOneProcessor() ? "1" : "2";
43-
testClusters.configureEach(elasticsearchCluster -> elasticsearchCluster.setting("node.processors", processorCount));
44-
}
45-
46-
private boolean shouldConfigureTestClustersWithOneProcessor() {
47-
return Boolean.parseBoolean(System.getProperty("tests.configure_test_clusters_with_one_processor", "false"));
4834
}
4935
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/CollectTransportVersionReferencesTask.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,12 @@ public void visitLineNumber(int line, Label start) {
101101
lineNumber = line;
102102
}
103103

104+
@Override
105+
public void visitLabel(Label label) {
106+
// asm uses many debug labels that we do not want to consider
107+
// so we ignore labels so they do not become part of the instructions list
108+
}
109+
104110
@Override
105111
public void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) {
106112
if (owner.equals(TRANSPORT_VERSION_SET_CLASS) && name.equals(TRANSPORT_VERSION_SET_METHOD_NAME)) {

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/GenerateInitialTransportVersionTask.java

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -37,31 +37,31 @@ public void run() throws IOException {
3737
Version releaseVersion = Version.fromString(getReleaseVersion().get());
3838
String upperBoundName = getUpperBoundName(releaseVersion);
3939
TransportVersionResourcesService resources = getResourceService().get();
40-
TransportVersionUpperBound upstreamUpperBound = resources.getUpperBoundFromUpstream(upperBoundName);
40+
TransportVersionUpperBound baseUpperBound = resources.getUpperBoundFromGitBase(upperBoundName);
4141
String initialDefinitionName = "initial_" + releaseVersion;
42-
TransportVersionDefinition existingDefinition = resources.getUnreferableDefinitionFromUpstream(initialDefinitionName);
42+
TransportVersionDefinition existingDefinition = resources.getUnreferableDefinitionFromGitBase(initialDefinitionName);
4343

44-
if (existingDefinition != null) {
45-
// this initial version has already been created upstream
46-
return;
47-
}
44+
// This task runs on main and release branches. In release branches we will generate the exact same
45+
// upper bound result because we always look at the base branch (ie upstream/main).
46+
if (existingDefinition == null) {
47+
if (baseUpperBound == null) {
48+
throw new RuntimeException("Missing upper bound " + upperBoundName + " for release version " + releaseVersion);
49+
}
4850

49-
if (upstreamUpperBound == null) {
50-
throw new RuntimeException("Missing upper bound " + upperBoundName + " for release version " + releaseVersion);
51-
}
52-
// minors increment by 1000 to create a unique base, patches increment by 1 as other patches do
53-
int increment = releaseVersion.getRevision() == 0 ? 1000 : 1;
54-
var id = TransportVersionId.fromInt(upstreamUpperBound.definitionId().complete() + increment);
55-
var definition = new TransportVersionDefinition(initialDefinitionName, List.of(id), false);
56-
resources.writeDefinition(definition);
57-
var newUpperBound = new TransportVersionUpperBound(upperBoundName, initialDefinitionName, id);
58-
resources.writeUpperBound(newUpperBound, false);
51+
// minors increment by 1000 to create a unique base, patches increment by 1 as other patches do
52+
int increment = releaseVersion.getRevision() == 0 ? 1000 : 1;
53+
var id = TransportVersionId.fromInt(baseUpperBound.definitionId().complete() + increment);
54+
var definition = new TransportVersionDefinition(initialDefinitionName, List.of(id), false);
55+
resources.writeDefinition(definition);
56+
var newUpperBound = new TransportVersionUpperBound(upperBoundName, initialDefinitionName, id);
57+
resources.writeUpperBound(newUpperBound, false);
5958

60-
if (releaseVersion.getRevision() == 0) {
61-
Version currentVersion = getCurrentVersion().get();
62-
String currentUpperBoundName = getUpperBoundName(currentVersion);
63-
var currentUpperBound = new TransportVersionUpperBound(currentUpperBoundName, initialDefinitionName, id);
64-
resources.writeUpperBound(currentUpperBound, false);
59+
if (releaseVersion.getRevision() == 0) {
60+
Version currentVersion = getCurrentVersion().get();
61+
String currentUpperBoundName = getUpperBoundName(currentVersion);
62+
var currentUpperBound = new TransportVersionUpperBound(currentUpperBoundName, initialDefinitionName, id);
63+
resources.writeUpperBound(currentUpperBound, false);
64+
}
6565
}
6666
}
6767

0 commit comments

Comments
 (0)