-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes #1290
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…figurations for netty classes
mpeddada1
added
the
kokoro:force-run
Add this label to force Kokoro to re-run the tests.
label
Feb 1, 2023
kokoro-team
removed
the
kokoro:force-run
Add this label to force Kokoro to re-run the tests.
label
Feb 1, 2023
The downstream checks are failing due to:
|
SonarCloud Quality Gate failed. |
burkedavison
approved these changes
Feb 1, 2023
meltsufin
approved these changes
Feb 1, 2023
lqiu96
pushed a commit
that referenced
this pull request
Feb 23, 2023
…figurations for netty classes (#1290) * fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes
lqiu96
added a commit
that referenced
this pull request
Mar 10, 2023
* fix: Allow custom http bindings for LROs * fix: Update generator and GAX to support custom HTTP Bindings for operations * fix: Use static Map for custom Operation REST Http Bindings * chore: Update golden test cases * chore: Update showcase tests * chore: Update golden ITs * chore: Add back origin HttpJsonOperationStub.create() methods * fix(deps): update dependency com.google.auth:google-auth-library-bom to v1.15.0 (#1278) * doc: Update DEVELOPMENT.md for local development. (#1237) * chore: Create a default mapping in OperationStub * chore: Do not generate custom bindings if there are none * chore: Update golden units * chore: Update all test cases * chore: Fix format issues * fix: remove constant operation binding field * chore: Clean up code * chore: Resolve sonar comments * chore: DEVELOPMENT.md formatting fix (#1289) * ci: use java-shared-dependencies in google-cloud-java repository for downstream test (#1291) * ci: use java-shared-dependencies in google-cloud-java * No need to modify google-cloud-jar-parent * fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes (#1290) * fix(java): initialize netty-shaded at run-time and add reflection configurations for netty classes * ci(showcase): disable rest_numeric_enum for showcase testing (#1284) * ci(showcase): disable rest_numeric_enum feature in showcase tests * chore(main): release 2.15.0 (#1269) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore(main): release 2.15.1-SNAPSHOT (#1292) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore: Pin Bazel version to 5.2.0 (#1304) Pin Bazel version to 5.2.0 as googleapis already updated to 5.2.0 * build(deps): bump cryptography from 38.0.3 to 39.0.1 in /.kokoro (#1297) Bumps [cryptography](https://github.com/pyca/cryptography) from 38.0.3 to 39.0.1. - [Release notes](https://github.com/pyca/cryptography/releases) - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](pyca/cryptography@38.0.3...39.0.1) --- updated-dependencies: - dependency-name: cryptography dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> * chore: (cleanup) removing unused files (#1265) * chore: (cleanup) removing unused files * chore: working on comments * chore: removing unused Gradle files in api-common-java, gax-java, java-common-protos, and java-iam (#1305) The build is Maven or Bazel. The Gradle files in the recently migrated repositories (api-common-java, gax-java, java-common-protos, and java-iam) are not used. Note that this pull request is not touching rules_java_gapic/resources/gradle which is still used to generate Gradle files for self-service client libraries. * chore: updated gax-java contribution doc (#1334) Removing unnecessary files * fix: use pkg_tar from rules_pkg (#1303) * chore: Fix pre-commit. (#1294) * chore: update CONTRIBUTING.md (#1346) * fix(deps): update dependency io.grpc:grpc-bom to v1.53.0 (#1345) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [io.grpc:grpc-bom](https://togithub.com/grpc/grpc-java) | `1.52.1` -> `1.53.0` | [![age](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/compatibility-slim/1.52.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/io.grpc:grpc-bom/1.53.0/confidence-slim/1.52.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>grpc/grpc-java</summary> ### [`v1.53.0`](https://togithub.com/grpc/grpc-java/releases/tag/v1.53.0) [Compare Source](https://togithub.com/grpc/grpc-java/compare/v1.52.1...v1.53.0) ##### New Features - googleapis: Allow user set c2p bootstrap config ([#​9856](https://togithub.com/grpc/grpc-java/issues/9856)) - xds: Add contain and stringMatcher in `RouteConfiguration` ([#​9845](https://togithub.com/grpc/grpc-java/issues/9845)) - core: Add `grpc-previous-rpc-attempts` to the initial response metadata ([#​9686](https://togithub.com/grpc/grpc-java/issues/9686)) - servlet: Implement gRPC server as a Servlet ([#​8596](https://togithub.com/grpc/grpc-java/issues/8596)) - authz: Implement static authorization server interceptor ([#​8934](https://togithub.com/grpc/grpc-java/issues/8934)) ##### Examples - servlet: Add servlet example ([#​8596](https://togithub.com/grpc/grpc-java/issues/8596)) ##### Bug Fixes - xds: Update xds error handling logic. Specifically: - When the ads stream is closed only send errors to subscribers that haven't yet gotten results - Timers to detect missing resources don’t start until the adsStream is ready ([#​9745](https://togithub.com/grpc/grpc-java/issues/9745)) - Call subscriber onError callback when xds client fails to connect to server ([#​9827](https://togithub.com/grpc/grpc-java/issues/9827)) - core: Delay retriable stream master listener close until all sub streams are closed. This fixes the call executor lifecycle and prevents potential `RejectedExecutionException`. ([#​9754](https://togithub.com/grpc/grpc-java/issues/9754)) - core: Free unused `MessageProducer` in `RetriableStream` ([#​9853](https://togithub.com/grpc/grpc-java/issues/9853)), fixing a Netty buffer memory leak for cancelled RPCs - api: Fail with `NullPointerException` when a Metadata.Marshaller returns null bytes ([#​9781](https://togithub.com/grpc/grpc-java/issues/9781)). This would previously cause a `NullPointerException` later during the RPC. Now the return value of the Marshaller is checked immediately, to help find the broken Marshaller ##### Behavior Changes - xds: Disallow duplicate addresses in the RingHashLB. ([#​9776](https://togithub.com/grpc/grpc-java/issues/9776)) - xds: EDS weight sums are allowed up to max unsigned int (was max signed int) ([#​9765](https://togithub.com/grpc/grpc-java/issues/9765)) - xds: Drop xds v2 support ([#​9760](https://togithub.com/grpc/grpc-java/issues/9760)) ##### Dependencies - JUnit upgraded to 4.13.2 - bazel: Dropped support for Bazel 4. We track the two most recent major versions of Bazel, Bazel 5 and 6. Bazel 4 may still work, but we are no longer testing it - bazel: Include Tomcat annotations dependency for `@Generated` as used by autovalue ([#​9762](https://togithub.com/grpc/grpc-java/issues/9762)). Necessary for building xds and rls on Java 9+ - bazel: Export deps from Maven Central-specific stand-in targets ([#​9780](https://togithub.com/grpc/grpc-java/issues/9780)). Some Maven Central artifacts are a combination of multiple Bazel targets, like grpc-core is composed of //core:inprocess, //core:internal, //core:util, //api. There is a “//core:core_maven” target used by maven_install that uses the other targets. Previously the target used `runtime_deps` to discourage their use by Bazel users, but that could cause compilation failures from lack of hjars. These targets now use `exports` ##### Acknowledgement [@​cpovirk](https://togithub.com/cpovirk) [@​niloc132](https://togithub.com/niloc132) [@​stephenh](https://togithub.com/stephenh) [@​olderwei](https://togithub.com/olderwei) [@​pandaapo](https://togithub.com/pandaapo) [@​panxuefeng](https://togithub.com/panxuefeng) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTQuMCIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=--> * chore(deps): update dependency org.apache.maven.plugins:maven-deploy-plugin to v3.1.0 (#1340) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-deploy-plugin](https://maven.apache.org/plugins/) | `3.0.0` -> `3.1.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/compatibility-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-deploy-plugin/3.1.0/confidence-slim/3.0.0)](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMTQuMCIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=--> * chore(deps): update dependency org.apache.maven.plugins:maven-surefire-plugin to v3.0.0-m9 (#1350) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-surefire-plugin](https://maven.apache.org/surefire/) | `3.0.0-M8` -> `3.0.0-M9` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/compatibility-slim/3.0.0-M8)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-surefire-plugin/3.0.0-M9/confidence-slim/3.0.0-M8)](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-java). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=--> * chore: add rules_pkg to renovate bot ignoreDeps (#1349) Following up on https://togithub.com/googleapis/gapic-generator-java/pull/1338, suppressing renovate PRs for the `rules_pkg` dependency since it will need to align with version used in googleapis. * chore: fix renovate bot ignoreDeps (#1353) Fixes #1352, from missed separator in #1349's changes. * fix(batcher): exceptions in unaryCaller bubble up (#1166) Co-authored-by: Blake Li <blakeli@google.com> * fix(deps): update dependency com.google.auth:google-auth-library-bom to v1.16.0 (#1355) * chore(deps): update dependency org.apache.maven.plugins:maven-javadoc-plugin to v3.5.0 (#1356) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [org.apache.maven.plugins:maven-javadoc-plugin](https://maven.apache.org/plugins/) | `3.4.1` -> `3.5.0` | [![age](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/compatibility-slim/3.4.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/maven/org.apache.maven.plugins:maven-javadoc-plugin/3.5.0/confidence-slim/3.4.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### ⚠ Dependency Lookup Warnings ⚠ Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information. --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-java). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMjUuMSIsInVwZGF0ZWRJblZlciI6IjM0LjEyNS4xIn0=--> * chore(main): release 2.15.1 (#1339) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: Emily Wang <emmwang@google.com> * chore: refactoring README and DEVELOPMENT.md (#1351) Thank you for opening a Pull Request! For general contributing guidelines, please refer to [contributing guide](https://togithub.com/googleapis/gapic-generator-java/blob/main/CONTRIBUTING.md) - The old file https://togithub.com/googleapis/gapic-generator-java/blob/main/gapic-generator-java/DEVELOPMENT.md was last touched in mid December. I'm replacing the content with the latest at the root. - Removing the root DEVELOPMENT.md in favor of the file above. - Adding index of the modules at the root README.md - Moving showcase testing guide to showcase/README.md. * chore(main): release 2.15.2-SNAPSHOT (#1358) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> * chore: renovate to group Protobuf artifacts (#1362) Copying packageGroup configuration from https://togithub.com/googleapis/synthtool/blob/master/synthtool/gcp/templates/java_library/renovate.json This should avoid separate pull requests for Protobuf: https://togithub.com/googleapis/gapic-generator-java/pull/1155 and https://togithub.com/googleapis/gapic-generator-java/pull/1154 * chore: README.md to explain service_config.proto (#1361) * chore: README.md to explain service_config.proto * add link * chore: Telling owlbot to ignore these files & it's a monorepo (#1372) * chore: Telling owlbot to ignore these files & it's a monorepo * fix: Change the default scope of gax from implementation to api in auto-generated gradle files for self-service client libraries. (#1374) * chore: Update variable name * chore: Fix format issues * fix: Use HttpRule as Value for Custom Bindings * fix: Use HttpRule as Value for Custom Bindings * chore: Add comments * chore: Update tests * fix(deps): update dependency com.google.auth:google-auth-library-bom to v1.15.0 (#1278) * doc: Update DEVELOPMENT.md for local development. (#1237) * chore: Add tests * chore: Cleanup files * chore: Format the files * chore: Add NoCredentialsProvider * chore: Fix sonar comments * chore: Add serviceyaml file for parsing for rest showcase tests * chore: Use service yaml file in test * chore: Fix Echo showcase test * chore: Clean up tests * chore: Sort the map entry to get a consistent ordering for the test * chore: Update showcase and integration tests * chore: Resolve sonar comments * chore: Update comments * chore: Remove a few public constructors * chore: test ci * chore: Remove the cache for java 8 * chore: Update from PR feedback * chore: Update comments * chore: Fix sonar issue * chore: Fix comment * chore: Update to have multiple additional_bindings * chore: Update grpcrest golden test to include httprule * chore: HttpJsonOperationsStub's MethodDescriptors are not static * chore: Add unit tests for HttpJson Operations logic * chore: Resolve lint issues * chore: Clean up test code * chore: Resolve pr comments * chore: Add VisibleForTesting annotation --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: Mend Renovate <bot@renovateapp.com> Co-authored-by: Blake Li <blakeli@google.com> Co-authored-by: Mike Eltsufin <meltsufin@google.com> Co-authored-by: Tomo Suzuki <suztomo@gmail.com> Co-authored-by: Mridula <66699525+mpeddada1@users.noreply.github.com> Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Deepankar Dixit <90280028+ddixit14@users.noreply.github.com> Co-authored-by: Anthonios Partheniou <partheniou@google.com> Co-authored-by: Joe Wang <106995533+JoeWang1127@users.noreply.github.com> Co-authored-by: Emily Wang <emmwang@google.com> Co-authored-by: Diego Alonso Marquez Palacios <diegomarquezp@google.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Build initialization of netty causes inconsistent behavior when an application is run locally versus on Cloud Run. One such case as discovered in https://github.com/mutianf/graalvm-test is when a bigtable application works fine with native image compilation locally but times out on Cloud Run.
More details:
Netty
System.nanoTime()
as a memoized static start_time variable when the native image is being built.System.nanoTime()
is an arbitrary value and platform specific so when the start_time is compared against anotherSystem.nanoTime()
at run time on the container, the comparison may not always be consistent. Netty is initialized at native image build time by default for netty 4.x but we can adjust this by setting--initialize-at-run-time=io.grpc.netty.shaded.io.netty
in aMETA-INF/native-image/native-image.properties
file.Additionally, build time initialization of netty also causes build time issues when third party logging libraries like SLF4J are used:
It is important to note that this may result in a performance cost depending on the code path the application follows but given the persistence of these issues as a result of build-time netty initialization, run-time initialization of netty provides a more out-of-the-box experience.