Skip to content

Conversation

cnauroth
Copy link
Contributor

Description of PR

Instead of upgrading the Guava version for the whole project, manage the version specifically needed just in hadoop-gcp due to its GCS SDK dependencies.

How was this patch tested?

Full build with all GCS integration tests.

For code changes:

  • Does the title or this PR starts with the corresponding JIRA issue id (e.g. 'HADOOP-17799. Your PR title ...')?
  • Object storage: have the integration tests been executed and the endpoint declared according to the connector-specific documentation?
  • If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
  • If applicable, have you updated the LICENSE, LICENSE-binary, NOTICE-binary files?

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 22s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 detsecrets 0m 0s detect-secrets was not available.
+0 🆗 xmllint 0m 0s xmllint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
-1 ❌ test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ HADOOP-19343 Compile Tests _
+0 🆗 mvndep 11m 8s Maven dependency ordering for branch
+1 💚 mvninstall 24m 7s HADOOP-19343 passed
+1 💚 compile 8m 38s HADOOP-19343 passed with JDK Ubuntu-11.0.27+6-post-Ubuntu-0ubuntu120.04
+1 💚 compile 7m 30s HADOOP-19343 passed with JDK Private Build-1.8.0_452-8u452-gaus1-0ubuntu120.04-b09
+1 💚 mvnsite 0m 57s HADOOP-19343 passed
+1 💚 javadoc 0m 57s HADOOP-19343 passed with JDK Ubuntu-11.0.27+6-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 53s HADOOP-19343 passed with JDK Private Build-1.8.0_452-8u452-gaus1-0ubuntu120.04-b09
+1 💚 shadedclient 75m 6s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 28s Maven dependency ordering for patch
+1 💚 mvninstall 6m 26s the patch passed
+1 💚 compile 8m 8s the patch passed with JDK Ubuntu-11.0.27+6-post-Ubuntu-0ubuntu120.04
+1 💚 javac 8m 8s the patch passed
+1 💚 compile 7m 23s the patch passed with JDK Private Build-1.8.0_452-8u452-gaus1-0ubuntu120.04-b09
+1 💚 javac 7m 23s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
+1 💚 mvnsite 0m 53s the patch passed
+1 💚 javadoc 0m 55s the patch passed with JDK Ubuntu-11.0.27+6-post-Ubuntu-0ubuntu120.04
+1 💚 javadoc 0m 56s the patch passed with JDK Private Build-1.8.0_452-8u452-gaus1-0ubuntu120.04-b09
+1 💚 shadedclient 25m 37s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 26s hadoop-project in the patch passed.
+1 💚 unit 0m 30s hadoop-gcp in the patch passed.
+1 💚 asflicense 0m 42s The patch does not generate ASF License warnings.
126m 40s
Subsystem Report/Notes
Docker ClientAPI=1.51 ServerAPI=1.51 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7883/1/artifact/out/Dockerfile
GITHUB PR #7883
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient codespell detsecrets xmllint
uname Linux fa9dfd77fb5e 5.15.0-143-generic #153-Ubuntu SMP Fri Jun 13 19:10:45 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision HADOOP-19343 / fafb987
Default Java Private Build-1.8.0_452-8u452-gaus1-0ubuntu120.04-b09
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.27+6-post-Ubuntu-0ubuntu120.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_452-8u452-gaus1-0ubuntu120.04-b09
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7883/1/testReport/
Max. process+thread count 554 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-tools/hadoop-gcp U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-7883/1/console
versions git=2.25.1 maven=3.6.3
Powered by Apache Yetus 0.14.0 https://yetus.apache.org

This message was automatically generated.

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>33.1.0-jre</version>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the https://github.com/google/guava/blob/v33.4.8/README.md says:

  1. APIs without @Beta will remain binary-compatible for the indefinite
    future. (Previously, we sometimes removed such APIs after a deprecation
    period. The last release to remove non-@Beta APIs was Guava 21.0.) Even
    @Deprecated APIs will remain (again, unless they are @Beta). We have no
    plans to start removing things again, but officially, we're leaving our
    options open in case of surprises (like, say, a serious security problem).

So Guava seems to ensure backward compatibility since 22, except for @Beta API? Suppose the GCS client does not use @Beta API, it is seems to be safe and simple to always use the latest Guava in the whole Hadoop project?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, maybe it's safe to do the upgrade then.

I propose that we move ahead with this PR on the feature branch, using a targeted approach just for the hadoop-gcp module. The decision to upgrade for the whole project is a separate discussion and deserves to be tracked in a dedicated bug/PR/release note.

@arunkumarchacko is helping with a little more testing before I commit this.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The decision to upgrade for the whole project is a separate discussion and deserves to be tracked in a dedicated bug/PR/release note.

make sense

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks to @arunkumarchacko for additional testing to confirm that this works!

@slfan1989
Copy link
Contributor

@cnauroth LGTM. This PR can be merged from my perspective.

@cnauroth cnauroth requested a review from slfan1989 August 25, 2025 15:35
cnauroth added a commit that referenced this pull request Aug 25, 2025
@cnauroth
Copy link
Contributor Author

I merged this to the feature branch. Thank you for the reviews, @pan3793 and @slfan1989 .

@cnauroth cnauroth closed this Aug 25, 2025
cnauroth added a commit that referenced this pull request Aug 25, 2025
@cnauroth cnauroth deleted the HADOOP-19343-guava-version branch August 25, 2025 22:53
@cnauroth
Copy link
Contributor Author

Oops, I had to revert this. It works fine within the hadoop-gcp module, but the dependency convergence failures then just get pushed down to hadoop-tools-dist. (See below.) This wasn't caught in pre-commit, because at the time the distro wasn't including hadoop-gcp yet. (It was before #7877 went in.)

We'll need to explore either upgrading the Guava version for the whole project or something else.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.5.0:enforce (depcheck) on project hadoop-tools-dist: 
[ERROR] Rule 0: org.apache.maven.enforcer.rules.dependency.DependencyConvergence failed with message:
[ERROR] Failed while enforcing releasability.
[ERROR] 
[ERROR] Dependency convergence error for org.checkerframework:checker-qual:jar:2.5.2 paths to dependency are:
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-kafka:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-org.apache.hadoop:hadoop-common:jar:3.5.0-SNAPSHOT:compile
[ERROR]       +-com.google.guava:guava:jar:27.0-jre:compile
[ERROR]         +-org.checkerframework:checker-qual:jar:2.5.2:compile
[ERROR] and
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-gcp:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-com.google.cloud:google-cloud-storage:jar:2.52.0:compile
[ERROR]       +-org.checkerframework:checker-qual:jar:3.49.0:compile
[ERROR] 
[ERROR] 
[ERROR] Dependency convergence error for io.opentelemetry:opentelemetry-api:jar:1.38.0 paths to dependency are:
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-aliyun:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-com.aliyun.oss:aliyun-sdk-oss:jar:3.18.1:compile
[ERROR]       +-com.aliyun:java-trace-api:jar:0.2.11-beta:compile
[ERROR]         +-io.opentelemetry:opentelemetry-api:jar:1.38.0:compile
[ERROR] and
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-gcp:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-com.google.cloud:google-cloud-storage:jar:2.52.0:compile
[ERROR]       +-io.opentelemetry:opentelemetry-api:jar:1.47.0:compile
[ERROR] 
[ERROR] 
[ERROR] Dependency convergence error for org.codehaus.mojo:animal-sniffer-annotations:jar:1.17 paths to dependency are:
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-kafka:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-org.apache.hadoop:hadoop-common:jar:3.5.0-SNAPSHOT:compile
[ERROR]       +-com.google.guava:guava:jar:27.0-jre:compile
[ERROR]         +-org.codehaus.mojo:animal-sniffer-annotations:jar:1.17:compile
[ERROR] and
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-gcp:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-com.google.cloud:google-cloud-storage:jar:2.52.0:compile
[ERROR]       +-org.codehaus.mojo:animal-sniffer-annotations:jar:1.24:compile
[ERROR] 
[ERROR] 
[ERROR] Dependency convergence error for com.google.j2objc:j2objc-annotations:jar:1.1 paths to dependency are:
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-kafka:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-org.apache.hadoop:hadoop-common:jar:3.5.0-SNAPSHOT:compile
[ERROR]       +-com.google.guava:guava:jar:27.0-jre:compile
[ERROR]         +-com.google.j2objc:j2objc-annotations:jar:1.1:compile
[ERROR] and
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-gcp:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-com.google.cloud:google-cloud-storage:jar:2.52.0:compile
[ERROR]       +-com.google.j2objc:j2objc-annotations:jar:3.0.0:compile
[ERROR] 
[ERROR] 
[ERROR] Dependency convergence error for com.google.guava:failureaccess:jar:1.0 paths to dependency are:
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-kafka:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-org.apache.hadoop:hadoop-common:jar:3.5.0-SNAPSHOT:compile
[ERROR]       +-com.google.guava:guava:jar:27.0-jre:compile
[ERROR]         +-com.google.guava:failureaccess:jar:1.0:compile
[ERROR] and
[ERROR] +-org.apache.hadoop:hadoop-tools-dist:jar:3.5.0-SNAPSHOT
[ERROR]   +-org.apache.hadoop:hadoop-gcp:jar:3.5.0-SNAPSHOT:compile
[ERROR]     +-com.google.cloud:google-cloud-storage:jar:2.52.0:compile
[ERROR]       +-com.google.guava:failureaccess:jar:1.0.2:compile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants