core: Fix regression where polling NameResolvers would not refresh after a resolution error (#10328). The symptom is a transient failure like "UNAVAILABLE: Unable to resolve host" continuing potentially forever. This did not impact DnsNameResolver, but it did impacted GrpclbNameResolver which is the dns name resolver used when grpc-grpclb is in the classpath. So even users that think "I don't use grpclb" may have been impacted. round_robin is mainly impacted on startup, but if the error happened afterward it would commonly fix itself for short transient DNS failures. pick_first is impacted at all times; any failed DNS resolution could cause all future RPCs on the channel to fail.
v1.56.0
API Changes
api: Stabilize the SynchronizationContext class (#10130).
api: Stabilize io.grpc.CallCredentials (#10208, #10211). thisUsesUnstableApi() is @Deprecated and has a default implementation. CallCredentials implementations should delete their implementation or remove @Overrides, as the method will be deleted in the future.
api: Stabilize the ProxyDetector hierarchy and ManagedChannelBuilder.proxyDetector method.
Behavior Changes
core: Sticky TRANSIENT_FAILURE in PickFirstLoadBalancer (#10106). See gRFC A62. If it can't connect, pick-first will now immediately fail RPCs until after it successfully connects. RPCs will no longer be delayed while it performs those attempts, which previously could cause significant (error) latency. It now also performs reconnect attempts after failure and backoff without prompting; previously it required an RPC to trigger the reconnect. ManagedChannel.idleTimeout (defaults to 30 minutes) still applies and forces the channel idle after a period of no RPCs.
stub: Add a null check for responseObserver into the methods for initiating a call that takes a responseObserver argument. This ensures a fail fast with a clearer cause instead of an NPE when the observer is first used.
xds: Flip default for RLS being enabled to true for XDS (#10248) (#10252). If there are no RLS configurations in your XDS or you already enabled it with the environment variable this will have no effect. To disable it, set the flag GRPC_EXPERIMENTAL_XDS_RLS_LB to false.
xds: Rename weighted_round_robin_experimental LB Policy to weighted_round_robin (#10162).
New Features
protobuf,protobuf-lite: Allow to configure protobuf recursion limit (#10094).
core: Optional address shuffle in PickFirstLoadBalancer (#10110).
xds: Add error-per-second in weight formula for client-side WRR (#10177).
xds: Use application_utilization and fallback to cpu_utilization if unset in weight formula for client-side WRR. (#10256).
bazel: The README now mentions Bazel and where to find the example. (#10217).
Bug Fixes
binder: Handle unexpected exceptions on binder threads. (#10092.
android,binder,cronet: .aar file when publishing. (#10138).
api: Fix boundary check in Status.fromCodeValue(). (#10155).
core: Don't use system Locale for content-type matching. (#10097).
okhttp: Fix signed-byte comparison in server when checking for ASCII in header (#10151). Without fix, authority could contain utf-8.
Dependencies
Version pinning (e.g., [1.56.0] instead of 1.56.0) has been removed from POMs, for both Netty and gRPC dependencies. The pinning was unreliable in Maven and ignored in Gradle, yet caused downloads during the build to fetch the version list. For a while we've had a BOM that helps reduce version skew. (#10175).
bazel: Add java toolchain type to all rules using java_common. (#10225).
Upgraded netty-tcnative-boringssl-static in grpc-netty-shaded to 2.0.61.Final (#10260). Netty itself was not updated.
core: Fix regression where polling NameResolvers would not refresh after a resolution error (#10328). The symptom is a transient failure like "UNAVAILABLE: Unable to resolve host" continuing potentially forever. This did not impact DnsNameResolver, but it did impacted GrpclbNameResolver which is the dns name resolver used when grpc-grpclb is in the classpath. So even users that think "I don't use grpclb" may have been impacted. round_robin is mainly impacted on startup, but if the error happened afterward it would commonly fix itself for short transient DNS failures. pick_first is impacted at all times; any failed DNS resolution could cause all future RPCs on the channel to fail.
v1.56.0
API Changes
api: Stabilize the SynchronizationContext class (#10130).
api: Stabilize io.grpc.CallCredentials (#10208, #10211). thisUsesUnstableApi() is @Deprecated and has a default implementation. CallCredentials implementations should delete their implementation or remove @Overrides, as the method will be deleted in the future.
api: Stabilize the ProxyDetector hierarchy and ManagedChannelBuilder.proxyDetector method.
Behavior Changes
core: Sticky TRANSIENT_FAILURE in PickFirstLoadBalancer (#10106). See gRFC A62. If it can't connect, pick-first will now immediately fail RPCs until after it successfully connects. RPCs will no longer be delayed while it performs those attempts, which previously could cause significant (error) latency. It now also performs reconnect attempts after failure and backoff without prompting; previously it required an RPC to trigger the reconnect. ManagedChannel.idleTimeout (defaults to 30 minutes) still applies and forces the channel idle after a period of no RPCs.
stub: Add a null check for responseObserver into the methods for initiating a call that takes a responseObserver argument. This ensures a fail fast with a clearer cause instead of an NPE when the observer is first used.
xds: Flip default for RLS being enabled to true for XDS (#10248) (#10252). If there are no RLS configurations in your XDS or you already enabled it with the environment variable this will have no effect. To disable it, set the flag GRPC_EXPERIMENTAL_XDS_RLS_LB to false.
xds: Rename weighted_round_robin_experimental LB Policy to weighted_round_robin (#10162).
New Features
protobuf,protobuf-lite: Allow to configure protobuf recursion limit (#10094).
core: Optional address shuffle in PickFirstLoadBalancer (#10110).
xds: Add error-per-second in weight formula for client-side WRR (#10177).
xds: Use application_utilization and fallback to cpu_utilization if unset in weight formula for client-side WRR. (#10256).
bazel: The README now mentions Bazel and where to find the example. (#10217).
Bug Fixes
binder: Handle unexpected exceptions on binder threads. (#10092.
android,binder,cronet: .aar file when publishing. (#10138).
api: Fix boundary check in Status.fromCodeValue(). (#10155).
core: Don't use system Locale for content-type matching. (#10097).
okhttp: Fix signed-byte comparison in server when checking for ASCII in header (#10151). Without fix, authority could contain utf-8.
Dependencies
Version pinning (e.g., [1.56.0] instead of 1.56.0) has been removed from POMs, for both Netty and gRPC dependencies. The pinning was unreliable in Maven and ignored in Gradle, yet caused downloads during the build to fetch the version list. For a while we've had a BOM that helps reduce version skew. (#10175).
bazel: Add java toolchain type to all rules using java_common. (#10225).
Upgraded netty-tcnative-boringssl-static in grpc-netty-shaded to 2.0.61.Final (#10260). Netty itself was not updated.
core: Fix regression where polling NameResolvers would not refresh after a resolution error (#10328). The symptom is a transient failure like "UNAVAILABLE: Unable to resolve host" continuing potentially forever. This did not impact DnsNameResolver, but it did impacted GrpclbNameResolver which is the dns name resolver used when grpc-grpclb is in the classpath. So even users that think "I don't use grpclb" may have been impacted. round_robin is mainly impacted on startup, but if the error happened afterward it would commonly fix itself for short transient DNS failures. pick_first is impacted at all times; any failed DNS resolution could cause all future RPCs on the channel to fail.
v1.56.0
API Changes
api: Stabilize the SynchronizationContext class (#10130).
api: Stabilize io.grpc.CallCredentials (#10208, #10211). thisUsesUnstableApi() is @Deprecated and has a default implementation. CallCredentials implementations should delete their implementation or remove @Overrides, as the method will be deleted in the future.
api: Stabilize the ProxyDetector hierarchy and ManagedChannelBuilder.proxyDetector method.
Behavior Changes
core: Sticky TRANSIENT_FAILURE in PickFirstLoadBalancer (#10106). See gRFC A62. If it can't connect, pick-first will now immediately fail RPCs until after it successfully connects. RPCs will no longer be delayed while it performs those attempts, which previously could cause significant (error) latency. It now also performs reconnect attempts after failure and backoff without prompting; previously it required an RPC to trigger the reconnect. ManagedChannel.idleTimeout (defaults to 30 minutes) still applies and forces the channel idle after a period of no RPCs.
stub: Add a null check for responseObserver into the methods for initiating a call that takes a responseObserver argument. This ensures a fail fast with a clearer cause instead of an NPE when the observer is first used.
xds: Flip default for RLS being enabled to true for XDS (#10248) (#10252). If there are no RLS configurations in your XDS or you already enabled it with the environment variable this will have no effect. To disable it, set the flag GRPC_EXPERIMENTAL_XDS_RLS_LB to false.
xds: Rename weighted_round_robin_experimental LB Policy to weighted_round_robin (#10162).
New Features
protobuf,protobuf-lite: Allow to configure protobuf recursion limit (#10094).
core: Optional address shuffle in PickFirstLoadBalancer (#10110).
xds: Add error-per-second in weight formula for client-side WRR (#10177).
xds: Use application_utilization and fallback to cpu_utilization if unset in weight formula for client-side WRR. (#10256).
bazel: The README now mentions Bazel and where to find the example. (#10217).
Bug Fixes
binder: Handle unexpected exceptions on binder threads. (#10092.
android,binder,cronet: .aar file when publishing. (#10138).
api: Fix boundary check in Status.fromCodeValue(). (#10155).
core: Don't use system Locale for content-type matching. (#10097).
okhttp: Fix signed-byte comparison in server when checking for ASCII in header (#10151). Without fix, authority could contain utf-8.
Dependencies
Version pinning (e.g., [1.56.0] instead of 1.56.0) has been removed from POMs, for both Netty and gRPC dependencies. The pinning was unreliable in Maven and ignored in Gradle, yet caused downloads during the build to fetch the version list. For a while we've had a BOM that helps reduce version skew. (#10175).
bazel: Add java toolchain type to all rules using java_common. (#10225).
Upgraded netty-tcnative-boringssl-static in grpc-netty-shaded to 2.0.61.Final (#10260). Netty itself was not updated.
core: Fix regression where polling NameResolvers would not refresh after a resolution error (#10328). The symptom is a transient failure like "UNAVAILABLE: Unable to resolve host" continuing potentially forever. This did not impact DnsNameResolver, but it did impacted GrpclbNameResolver which is the dns name resolver used when grpc-grpclb is in the classpath. So even users that think "I don't use grpclb" may have been impacted. round_robin is mainly impacted on startup, but if the error happened afterward it would commonly fix itself for short transient DNS failures. pick_first is impacted at all times; any failed DNS resolution could cause all future RPCs on the channel to fail.
v1.56.0
API Changes
api: Stabilize the SynchronizationContext class (#10130).
api: Stabilize io.grpc.CallCredentials (#10208, #10211). thisUsesUnstableApi() is @Deprecated and has a default implementation. CallCredentials implementations should delete their implementation or remove @Overrides, as the method will be deleted in the future.
api: Stabilize the ProxyDetector hierarchy and ManagedChannelBuilder.proxyDetector method.
Behavior Changes
core: Sticky TRANSIENT_FAILURE in PickFirstLoadBalancer (#10106). See gRFC A62. If it can't connect, pick-first will now immediately fail RPCs until after it successfully connects. RPCs will no longer be delayed while it performs those attempts, which previously could cause significant (error) latency. It now also performs reconnect attempts after failure and backoff without prompting; previously it required an RPC to trigger the reconnect. ManagedChannel.idleTimeout (defaults to 30 minutes) still applies and forces the channel idle after a period of no RPCs.
stub: Add a null check for responseObserver into the methods for initiating a call that takes a responseObserver argument. This ensures a fail fast with a clearer cause instead of an NPE when the observer is first used.
xds: Flip default for RLS being enabled to true for XDS (#10248) (#10252). If there are no RLS configurations in your XDS or you already enabled it with the environment variable this will have no effect. To disable it, set the flag GRPC_EXPERIMENTAL_XDS_RLS_LB to false.
xds: Rename weighted_round_robin_experimental LB Policy to weighted_round_robin (#10162).
New Features
protobuf,protobuf-lite: Allow to configure protobuf recursion limit (#10094).
core: Optional address shuffle in PickFirstLoadBalancer (#10110).
xds: Add error-per-second in weight formula for client-side WRR (#10177).
xds: Use application_utilization and fallback to cpu_utilization if unset in weight formula for client-side WRR. (#10256).
bazel: The README now mentions Bazel and where to find the example. (#10217).
Bug Fixes
binder: Handle unexpected exceptions on binder threads. (#10092.
android,binder,cronet: .aar file when publishing. (#10138).
api: Fix boundary check in Status.fromCodeValue(). (#10155).
core: Don't use system Locale for content-type matching. (#10097).
okhttp: Fix signed-byte comparison in server when checking for ASCII in header (#10151). Without fix, authority could contain utf-8.
Dependencies
Version pinning (e.g., [1.56.0] instead of 1.56.0) has been removed from POMs, for both Netty and gRPC dependencies. The pinning was unreliable in Maven and ignored in Gradle, yet caused downloads during the build to fetch the version list. For a while we've had a BOM that helps reduce version skew. (#10175).
bazel: Add java toolchain type to all rules using java_common. (#10225).
Upgraded netty-tcnative-boringssl-static in grpc-netty-shaded to 2.0.61.Final (#10260). Netty itself was not updated.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps
io.grpc.version
from 1.43.2 to 1.56.1. Updatesgrpc-protobuf
from 1.43.2 to 1.56.1Release notes
Sourced from grpc-protobuf's releases.
... (truncated)
Commits
0583c92
Bump version to 1.56.1ce0239c
Update README etc to reference 1.56.13689c40
core: ManagedChannelImpl to always use RetryingNameResolver (#10328) (#10332)dbe818d
[PSM interop] Don't fail url_map target if sub-target already failed (#10295)...558b5b0
Bump version to 1.56.1-SNAPSHOTd25095c
Bump version to 1.56.06168330
Update README etc to reference 1.56.0b89207f
Upgrade netty-tcnative to 2.0.61.Finalcaeeb06
services, xds, orca: use application_utilization and fallback to cpu_utilizat...311e7bc
Download Maven from Maven CentralUpdates
grpc-netty
from 1.43.2 to 1.56.1Release notes
Sourced from grpc-netty's releases.
... (truncated)
Commits
0583c92
Bump version to 1.56.1ce0239c
Update README etc to reference 1.56.13689c40
core: ManagedChannelImpl to always use RetryingNameResolver (#10328) (#10332)dbe818d
[PSM interop] Don't fail url_map target if sub-target already failed (#10295)...558b5b0
Bump version to 1.56.1-SNAPSHOTd25095c
Bump version to 1.56.06168330
Update README etc to reference 1.56.0b89207f
Upgrade netty-tcnative to 2.0.61.Finalcaeeb06
services, xds, orca: use application_utilization and fallback to cpu_utilizat...311e7bc
Download Maven from Maven CentralUpdates
grpc-stub
from 1.43.2 to 1.56.1Release notes
Sourced from grpc-stub's releases.
... (truncated)
Commits
0583c92
Bump version to 1.56.1ce0239c
Update README etc to reference 1.56.13689c40
core: ManagedChannelImpl to always use RetryingNameResolver (#10328) (#10332)dbe818d
[PSM interop] Don't fail url_map target if sub-target already failed (#10295)...558b5b0
Bump version to 1.56.1-SNAPSHOTd25095c
Bump version to 1.56.06168330
Update README etc to reference 1.56.0b89207f
Upgrade netty-tcnative to 2.0.61.Finalcaeeb06
services, xds, orca: use application_utilization and fallback to cpu_utilizat...311e7bc
Download Maven from Maven CentralUpdates
grpc-services
from 1.43.2 to 1.56.1Release notes
Sourced from grpc-services's releases.
... (truncated)
Commits
0583c92
Bump version to 1.56.1ce0239c
Update README etc to reference 1.56.13689c40
core: ManagedChannelImpl to always use RetryingNameResolver (#10328) (#10332)dbe818d
[PSM interop] Don't fail url_map target if sub-target already failed (#10295)...558b5b0
Bump version to 1.56.1-SNAPSHOTd25095c
Bump version to 1.56.06168330
Update README etc to reference 1.56.0b89207f
Upgrade netty-tcnative to 2.0.61.Finalcaeeb06
services, xds, orca: use application_utilization and fallback to cpu_utilizat...311e7bc
Download Maven from Maven CentralDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)