Skip to content

[BEAM-8676] sdks/java: gax and grpc upgrades - #10438

Closed
suztomo wants to merge 3 commits into
apache:masterfrom
suztomo:gax_grpc
Closed

[BEAM-8676] sdks/java: gax and grpc upgrades#10438
suztomo wants to merge 3 commits into
apache:masterfrom
suztomo:gax_grpc

Conversation

@suztomo

@suztomosuztomo commented Dec 20, 2019

Copy link
Copy Markdown
Contributor

https://issues.apache.org/jira/browse/BEAM-8676

Gax and gRPC work together. Upgrading their dependencies to higher versions.

  • The latest gax-grpc:1.52.0 depends on gRPC 1.25.0. (So not setting grpc 1.26.0)

Which modules use gax and grpc?

find . -name 'build.gradle' |xargs grep -ir library.java.gax gave

  • ./sdks/java/io/google-cloud-platform/build.gradle
  • ./sdks/java/extensions/sql/datacatalog/build.gradle
  • ./sdks/java/extensions/sql/zetasql/build.gradle

Linkage Check

beam-sdks-java-io-google-cloud-platform

  • before:
  • after:

beam-sdks-java-extensions-sql-zetasql

Linkage Checker does not work for beam-sdks-java-extensions-sql-zetasql. (Bug: GoogleCloudPlatform/cloud-opensource-java#1087)

beam-sdks-java-extensions-sql-datacatalog

  • before:
  • after:

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Choose reviewer(s) and mention them in a comment (R: @username).
  • Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

Post-Commit Tests Status (on master branch)

LangSDKApexDataflowFlinkGearpumpSamzaSpark
GoBuild Status------Build Status------Build Status
JavaBuild StatusBuild StatusBuild StatusBuild Status
Build Status
Build Status
Build StatusBuild StatusBuild Status
Build Status
Build Status
PythonBuild Status
Build Status
Build Status
Build Status
---Build Status
Build Status
Build Status
Build Status
------Build Status
XLang---------Build Status---------

Pre-Commit Tests Status (on master branch)

---JavaPythonGoWebsite
Non-portableBuild StatusBuild Status
Build Status
Build StatusBuild Status
Portable---Build Status------

See .test-infra/jenkins/README for trigger phrase, status and link of all Jenkins jobs.

compile project(":sdks:java:extensions:protobuf")
compile library.java.avro
compile library.java.bigdataoss_util
compile library.java.gax

@suztomosuztomoDec 20, 2019

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

As BigQueryServicesImpl uses gax's com.google.api.gax.core.FixedCredentialsProvider (undeclared-but-used dependency), declaring it explicitly.

def google_cloud_core_version = "1.61.0"
def google_cloud_spanner_version = "1.6.0"
def grpc_version = "1.17.1"
def grpc_version = "1.25.0"

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

The latest version of gRPC is 1.26.0, but setting 1.25.0 as gax-grpc:1.52.0 depends on 1.25.0.

@suztomo

Copy link
Copy Markdown
ContributorAuthor

R: @kennknowles

@suztomo

Copy link
Copy Markdown
ContributorAuthor

R: @lukecwik@chamikaramj

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run SQL Postcommit

@suztomo

Copy link
Copy Markdown
ContributorAuthor

retest this please

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run Java PostCommit

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run Java HadoopFormatIO Performance Test

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run BigQueryIO Streaming Performance Test Java

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run Dataflow ValidatesRunner

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run Spark ValidatesRunner

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run SQL Postcommit

@suztomo

Copy link
Copy Markdown
ContributorAuthor

retest this please

@suztomo

Copy link
Copy Markdown
ContributorAuthor

retest this please

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run Java PostCommit

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Run Java PostCommit

@lukecwik

Copy link
Copy Markdown
Member

Please post the before and after results of the linkage checker for the GCP IO module.

Swapping to gRPC 1.25 suggests to update protobuf to 3.11.0 and guava to 28.1. Upgrading those may need to happen before this change could be adopted depending on the linkage checker results.

This seems like an innocuous change but past experience has shown that grpc/proto/guava like to make breaking changes.

@suztomo

Copy link
Copy Markdown
ContributorAuthor

Swapping to gRPC 1.25 suggests to update protobuf to 3.11.0 and guava to 28.1

Good point. The current protobuf 3.6.0 is not compatible with gax-grpc 1.52.0. Let me update that first. I'll attach linkage check result on that PR.

@suztomosuztomo closed this Jan 3, 2020
@suztomo

Copy link
Copy Markdown
ContributorAuthor

Raised #10498 for protobuf upgrade. Jenkins is not running tests (yet?).

@suztomo

suztomo commented Jan 6, 2020

Copy link
Copy Markdown
ContributorAuthor

https://gist.github.com/suztomo/9af333b78b157d6a829d59ac5353e01d

Linkage Error on com.google.auth:google-auth-library-oauth2-http:0.12.0 x com.google.api:gax:1.52.0
(com.google.auth:google-auth-library-oauth2-http:0.12.0) com.google.auth.oauth2.ServiceAccountCredentials's method getQuotaProjectId() is not found (type: SYMBOL_NOT_FOUND)
com.google.api.gax.core.GoogleCredentialsProvider (com.google.api:gax:1.52.0)
(com.google.auth:google-auth-library-oauth2-http:0.12.0) com.google.auth.oauth2.ServiceAccountJwtAccessCredentials$Builder's method setQuotaProjectId(String arg1) is not found (type: SYMBOL_NOT_FOUND)
com.google.api.gax.core.GoogleCredentialsProvider (com.google.api:gax:1.52.0)

This PR needs #10508 first.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@suztomo@lukecwik