Skip to content
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(batcher): exceptions in unaryCaller bubble up #1166

Merged
merged 5 commits into from
Feb 14, 2023

Conversation

diegomarquezp
Copy link
Contributor

From old gax-java repo.
Fixes #1324. When the BatcherImpl's unary caller throws an exception, this will bubble up to response.get()

@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

100.0% 100.0% Coverage
0.0% 0.0% Duplication

@suztomo
Copy link
Member

suztomo commented Jan 19, 2023

@diegomarquezp Can you clarify what you waiting for?

@diegomarquezp
Copy link
Contributor Author

diegomarquezp commented Jan 20, 2023

@suztomo I just need an approval/review. I fixed the pending checks by merging main.

@suztomo
Copy link
Member

suztomo commented Jan 20, 2023

@igorbernstein2 Can you review this change?

@suztomo
Copy link
Member

suztomo commented Jan 20, 2023

"Kokoro - Test: Downstream Java GraalVM Native Image" failed

[ERROR]   The project com.google.cloud:google-cloud-shared-dependencies:3.1.2-SNAPSHOT (/tmpfs/src/github/gapic-generator-java/java-shared-dependencies/pom.xml) has 1 error
[ERROR]     Non-resolvable import POM: Could not find artifact com.google.cloud:google-cloud-core-bom:pom:2.9.3 in google-maven-central (https://maven-central.storage-download.googleapis.com/maven2/) @ com.google.cloud:first-party-dependencies:3.1.2-SNAPSHOT, /tmpfs/src/github/gapic-generator-java/java-shared-dependencies/first-party-dependencies/pom.xml, line 86, column 19 -> [Help 2]

@product-auto-label product-auto-label bot added the size: m Pull request size is medium. label Feb 14, 2023
@sonarqubecloud
Copy link

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

100.0% 100.0% Coverage
0.0% 0.0% Duplication

@diegomarquezp diegomarquezp merged commit bcf5ed8 into main Feb 14, 2023
@diegomarquezp diegomarquezp deleted the fix-batcher-unary-exception-bubbling branch February 14, 2023 20:04
lqiu96 pushed a commit that referenced this pull request Feb 23, 2023
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] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Mridula <[email protected]>

* 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 ([#&#8203;9856](https://togithub.com/grpc/grpc-java/issues/9856))
-   xds: Add contain and stringMatcher in `RouteConfiguration` ([#&#8203;9845](https://togithub.com/grpc/grpc-java/issues/9845))
-   core: Add `grpc-previous-rpc-attempts` to the initial response metadata ([#&#8203;9686](https://togithub.com/grpc/grpc-java/issues/9686))
-   servlet: Implement gRPC server as a Servlet ([#&#8203;8596](https://togithub.com/grpc/grpc-java/issues/8596))
-   authz: Implement static authorization server interceptor ([#&#8203;8934](https://togithub.com/grpc/grpc-java/issues/8934))

##### Examples

-   servlet: Add servlet example ([#&#8203;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 ([#&#8203;9745](https://togithub.com/grpc/grpc-java/issues/9745))
    -   Call subscriber onError callback when xds client fails to connect to server ([#&#8203;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`. ([#&#8203;9754](https://togithub.com/grpc/grpc-java/issues/9754))
-   core: Free unused `MessageProducer` in `RetriableStream` ([#&#8203;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 ([#&#8203;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. ([#&#8203;9776](https://togithub.com/grpc/grpc-java/issues/9776))
-   xds: EDS weight sums are allowed up to max unsigned int (was max signed int) ([#&#8203;9765](https://togithub.com/grpc/grpc-java/issues/9765))
-   xds: Drop xds v2 support ([#&#8203;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 ([#&#8203;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 ([#&#8203;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

[@&#8203;cpovirk](https://togithub.com/cpovirk)
[@&#8203;niloc132](https://togithub.com/niloc132)
[@&#8203;stephenh](https://togithub.com/stephenh)
[@&#8203;olderwei](https://togithub.com/olderwei)
[@&#8203;pandaapo](https://togithub.com/pandaapo)
[@&#8203;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 <[email protected]>

* 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 <[email protected]>

* 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] <[email protected]>
Co-authored-by: Mend Renovate <[email protected]>
Co-authored-by: Blake Li <[email protected]>
Co-authored-by: Mike Eltsufin <[email protected]>
Co-authored-by: Tomo Suzuki <[email protected]>
Co-authored-by: Mridula <[email protected]>
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 <[email protected]>
Co-authored-by: Anthonios Partheniou <[email protected]>
Co-authored-by: Joe Wang <[email protected]>
Co-authored-by: Emily Wang <[email protected]>
Co-authored-by: Diego Alonso Marquez Palacios <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
size: m Pull request size is medium.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

BatcherImpl.add can hang if an exception is thrown starting a call
5 participants