This is an automated email from the ASF dual-hosted git repository.
voonhous pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new 1e2736f5a51b fix(ci): retry transient Maven Central 5xx and stop
seeding a 10 MB Maven cache (#19244)
1e2736f5a51b is described below
commit 1e2736f5a51b95796947a61ab6924ab900af6896
Author: Vova Kolmakov <[email protected]>
AuthorDate: Sat Jul 11 13:59:11 2026 +0700
fix(ci): retry transient Maven Central 5xx and stop seeding a 10 MB Maven
cache (#19244)
CI jobs intermittently die in "Build Project" when Maven Central rejects a
plugin or plugin-dependency fetch. The retry knobs in MVN_ARGS are
maven.wagon.* properties, which Maven 3.9's native resolver transport never
reads, so the build effectively ran with resolver defaults and retried only 429
and 503. A single 502 from Central killed a six-minute build.
Replace them with the equivalent aether.connector.http.* properties and
extend the retried codes to 429,500,502,503,504. 403 is deliberately excluded:
Central answers 403 when its CDN has blocked the runner's egress IP, and
retrying that is what escalates the block. Azure keeps the wagon flags too,
because its Maven version is not pinned and Maven 3.8 reads only those.
Drop `cache: maven` from validate-source. All jobs share one cache key and
the first job to finish wins the write, so that 40-second RAT check was sealing
a ~10 MB local repository which every build job then discarded and
re-downloaded from Central.
Remove the 2019-era maven-jar-plugin 3.1.2 overrides from hudi-utilities,
hudi-kafka-connect, hudi-examples-flink and hudi-flink so they inherit the
3.5.0 pin, as hudi-aws already does. 3.1.2 is the only reason
maven-archiver:3.4.0, the artifact that failed, is fetched at all.
Co-authored-by: Vova Kolmakov <[email protected]>
---
.github/workflows/bot.yml | 12 ++++++++++--
.github/workflows/maven_artifact_validation.yml | 3 ++-
.github/workflows/release_candidate_validation.yml | 3 ++-
azure-pipelines-20230430.yml | 5 ++++-
hudi-examples/hudi-examples-flink/pom.xml | 1 -
hudi-flink-datasource/hudi-flink/pom.xml | 1 -
hudi-kafka-connect/pom.xml | 1 -
hudi-utilities/pom.xml | 1 -
8 files changed, 18 insertions(+), 9 deletions(-)
diff --git a/.github/workflows/bot.yml b/.github/workflows/bot.yml
index 36598ec3ed98..160822b26d7e 100644
--- a/.github/workflows/bot.yml
+++ b/.github/workflows/bot.yml
@@ -17,7 +17,12 @@ concurrency:
cancel-in-progress: ${{ !contains(github.ref, 'master') &&
!contains(github.ref, 'branch-0.x') && !contains(github.ref, 'release-') }}
env:
- MVN_ARGS: -e -ntp -B -V -Dgpg.skip -Djacoco.skip -Pwarn-log
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade=warn
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency=warn
-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
-Dmaven.wagon.http.retryHandler.count=5 -Dorg.eclipse.jetty.LEVEL=WARN
+ # The retry/timeout knobs below are maven-resolver (aether.*) properties.
Maven 3.9 resolves
+ # artifacts through the native resolver HTTP transport, which ignores the
older maven.wagon.* names.
+ # serviceUnavailable lists the HTTP codes retried instead of failing the
build. 403 is deliberately
+ # absent: Maven Central answers 403 when its CDN has blocked the runner's
egress IP, and retrying
+ # that is what escalates the block.
+ MVN_ARGS: -e -ntp -B -V -Dgpg.skip -Djacoco.skip -Pwarn-log
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade=warn
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency=warn
-Daether.connector.http.retryHandler.count=5
-Daether.connector.http.retryHandler.interval=3000
-Daether.connector.http.retryHandler.intervalMax=30000
-Daether.connector.http.retryHandler.serviceUnavailable=429,500,502,503,504
-Daether.connector.http.connectionMaxTtl=25 -Dorg.eclipse.jetty.LEVEL=WARN
SPARK_COMMON_MODULES:
hudi-spark-datasource/hudi-spark,hudi-spark-datasource/hudi-spark-common
JAVA_UT_FILTER1:
-Dtest=!TestCOWDataSource,!TestMORDataSource,!TestHoodieFileSystemViews
JAVA_UT_FILTER2:
-Dtest=TestCOWDataSource,TestMORDataSource,TestHoodieFileSystemViews
@@ -71,7 +76,10 @@ jobs:
java-version: '11'
distribution: 'temurin'
architecture: x64
- cache: maven
+ # No `cache: maven` on purpose. All jobs share one cache key and the
first job to finish
+ # wins the write. This one only runs `mvn apache-rat:check`,
finishes in well under a
+ # minute, and would seal a ~10 MB local repo that every build job
then has to discard and
+ # re-download from Maven Central.
- name: Check Binary Files
run: ./scripts/release/validate_source_binary_files.sh
- name: Check Copyright
diff --git a/.github/workflows/maven_artifact_validation.yml
b/.github/workflows/maven_artifact_validation.yml
index a5119d147f09..79ccc82413f7 100644
--- a/.github/workflows/maven_artifact_validation.yml
+++ b/.github/workflows/maven_artifact_validation.yml
@@ -9,7 +9,8 @@ on:
- 'release-*'
env:
- MVN_ARGS: -e -ntp -B -V -Dgpg.skip -Djacoco.skip -Pwarn-log
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade=warn
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency=warn
-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
-Dmaven.wagon.http.retryHandler.count=5
+ # See .github/workflows/bot.yml for why these are aether.* and not
maven.wagon.* properties.
+ MVN_ARGS: -e -ntp -B -V -Dgpg.skip -Djacoco.skip -Pwarn-log
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade=warn
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency=warn
-Daether.connector.http.retryHandler.count=5
-Daether.connector.http.retryHandler.interval=3000
-Daether.connector.http.retryHandler.intervalMax=30000
-Daether.connector.http.retryHandler.serviceUnavailable=429,500,502,503,504
-Daether.connector.http.connectionMaxTtl=25
SPARK_COMMON_MODULES:
hudi-spark-datasource/hudi-spark,hudi-spark-datasource/hudi-spark-common
jobs:
diff --git a/.github/workflows/release_candidate_validation.yml
b/.github/workflows/release_candidate_validation.yml
index bb5fa62059cb..6d13467ce87f 100644
--- a/.github/workflows/release_candidate_validation.yml
+++ b/.github/workflows/release_candidate_validation.yml
@@ -9,7 +9,8 @@ on:
- 'release-*'
env:
- MVN_ARGS: -e -ntp -B -V -Dgpg.skip -Djacoco.skip -Pwarn-log
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade=warn
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency=warn
-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
-Dmaven.wagon.http.retryHandler.count=5
+ # See .github/workflows/bot.yml for why these are aether.* and not
maven.wagon.* properties.
+ MVN_ARGS: -e -ntp -B -V -Dgpg.skip -Djacoco.skip -Pwarn-log
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade=warn
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency=warn
-Daether.connector.http.retryHandler.count=5
-Daether.connector.http.retryHandler.interval=3000
-Daether.connector.http.retryHandler.intervalMax=30000
-Daether.connector.http.retryHandler.serviceUnavailable=429,500,502,503,504
-Daether.connector.http.connectionMaxTtl=25
SPARK_COMMON_MODULES:
hudi-spark-datasource/hudi-spark,hudi-spark-datasource/hudi-spark-common
jobs:
diff --git a/azure-pipelines-20230430.yml b/azure-pipelines-20230430.yml
index 81a5dc07d58f..0d5967ea6eba 100644
--- a/azure-pipelines-20230430.yml
+++ b/azure-pipelines-20230430.yml
@@ -103,7 +103,10 @@ parameters:
variables:
BUILD_PROFILES: '-Dscala-2.12 -Dspark3.5 -Dflink2.1'
PLUGIN_OPTS: '-Dcheckstyle.skip=true -Drat.skip=true -ntp -B -V -Pwarn-log
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.shade=warn
-Dorg.slf4j.simpleLogger.log.org.apache.maven.plugins.dependency=warn'
- MVN_OPTS_INSTALL: '-T 3 -Phudi-platform-service -DskipTests
$(BUILD_PROFILES) $(PLUGIN_OPTS)
-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
-Dmaven.wagon.http.retryHandler.count=5 -Dorg.eclipse.jetty.LEVEL=WARN'
+ # The aether.* properties drive maven-resolver's native HTTP transport
(Maven 3.9+); the
+ # maven.wagon.* ones are kept because this image's Maven version is not
pinned and Maven 3.8
+ # resolves through wagon, which reads only the latter. Each set is ignored
by the other transport.
+ MVN_OPTS_INSTALL: '-T 3 -Phudi-platform-service -DskipTests
$(BUILD_PROFILES) $(PLUGIN_OPTS)
-Dmaven.wagon.httpconnectionManager.ttlSeconds=25
-Dmaven.wagon.http.retryHandler.count=5
-Daether.connector.http.retryHandler.count=5
-Daether.connector.http.retryHandler.interval=3000
-Daether.connector.http.retryHandler.intervalMax=30000
-Daether.connector.http.retryHandler.serviceUnavailable=429,500,502,503,504
-Daether.connector.http.connectionMaxTtl=25 -Dorg.eclipse.jetty.LEVEL=WARN'
MVN_OPTS_TEST: '-fae -Pwarn-log $(BUILD_PROFILES) $(PLUGIN_OPTS)'
JAVA_MVN_TEST_FILTER: '-DwildcardSuites=skipScalaTests
-Dsurefire.failIfNoSpecifiedTests=false'
SCALA_MVN_TEST_FILTER: '-Dtest=skipJavaTests
-Dsurefire.failIfNoSpecifiedTests=false'
diff --git a/hudi-examples/hudi-examples-flink/pom.xml
b/hudi-examples/hudi-examples-flink/pom.xml
index b23579130704..4d57d4787992 100644
--- a/hudi-examples/hudi-examples-flink/pom.xml
+++ b/hudi-examples/hudi-examples-flink/pom.xml
@@ -46,7 +46,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>3.1.2</version>
<executions>
<execution>
<goals>
diff --git a/hudi-flink-datasource/hudi-flink/pom.xml
b/hudi-flink-datasource/hudi-flink/pom.xml
index 6db5d076aa37..bee3621645ef 100644
--- a/hudi-flink-datasource/hudi-flink/pom.xml
+++ b/hudi-flink-datasource/hudi-flink/pom.xml
@@ -48,7 +48,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>3.1.2</version>
<executions>
<execution>
<goals>
diff --git a/hudi-kafka-connect/pom.xml b/hudi-kafka-connect/pom.xml
index 790ea54e3540..93a1cce07b29 100644
--- a/hudi-kafka-connect/pom.xml
+++ b/hudi-kafka-connect/pom.xml
@@ -45,7 +45,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>3.1.2</version>
<executions>
<execution>
<goals>
diff --git a/hudi-utilities/pom.xml b/hudi-utilities/pom.xml
index 5f8c620b5291..1a2a3aa877f2 100644
--- a/hudi-utilities/pom.xml
+++ b/hudi-utilities/pom.xml
@@ -43,7 +43,6 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>3.1.2</version>
<executions>
<execution>
<goals>