Commit cd8f5fa
authored
fix(deps): Update grpc-java monorepo to v1.75.0 (#365)
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [io.grpc:grpc-inprocess](https://redirect.github.com/grpc/grpc-java) | dependencies | minor | `1.70.0` -> `1.75.0` |
| [io.grpc:grpc-testing](https://redirect.github.com/grpc/grpc-java) | dependencies | minor | `1.70.0` -> `1.75.0` |
| [io.grpc:grpc-services](https://redirect.github.com/grpc/grpc-java) | dependencies | minor | `1.70.0` -> `1.75.0` |
| [io.grpc:grpc-stub](https://redirect.github.com/grpc/grpc-java) | dependencies | minor | `1.70.0` -> `1.75.0` |
| [io.grpc:grpc-protobuf](https://redirect.github.com/grpc/grpc-java) | dependencies | minor | `1.70.0` -> `1.75.0` |
---
### Release Notes
<details>
<summary>grpc/grpc-java (io.grpc:grpc-inprocess)</summary>
### [`v1.75.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.75.0)
##### Behavior Changes
- binder: Introduce server pre-authorization ([#​12127](https://redirect.github.com/grpc/grpc-java/issues/12127)). grpc-binder clients authorize servers by checking the UID of the sender of the SETUP_TRANSPORT Binder transaction against some SecurityPolicy. But merely binding to an unauthorized server to learn its UID can enable "keep-alive" and "background activity launch" abuse, even if security policy ultimately causes the grpc connection to fail. Pre-authorization mitigates this kind of abuse by resolving addresses and authorizing a candidate server Application's UID before binding to it. Pre-auth is especially important when the server's address is not fixed in advance but discovered by PackageManager lookup.
##### Bug Fixes
- core: `grpc-timeout` should always be positive ([#​12201](https://redirect.github.com/grpc/grpc-java/issues/12201)) ([`6dfa03c`](https://redirect.github.com/grpc/grpc-java/commit/6dfa03c51)). There is a local race between when the deadline is checked before sending the RPC and when the timeout is calculated to put on-the-wire. The code replaced negative timeouts with 0 nanoseconds. gRPC’s PROTOCOL-HTTP2 spec states that timeouts should be positive, so now non-positive values are replaced with 1 nanosecond
- core: Improved DEADLINE_EXCEEDED message for delayed calls ([`6ff8eca`](https://redirect.github.com/grpc/grpc-java/commit/6ff8ecac0)). Delayed calls are the first calls on a Channel before name resolution has resolved addresses. Previously you could see confusing errors saying the deadline “will be exceeded in” X time. The message tense was simply wrong, and now will be correct: deadline “was exceeded after” X time.
- xds: PriorityLB now only uses the failOverTimer to start additional priorities, not fail RPCs ([`c4256ad`](https://redirect.github.com/grpc/grpc-java/commit/c4256add4)). You should no longer see “Connection timeout for priority” errors.
##### Improvements
- netty: Count sent RST_STREAMs against `NettyServerBuilder.maxRstFramesPerWindow()` limit ([#​12288](https://redirect.github.com/grpc/grpc-java/issues/12288)). This extends the Rapid Reset tool to also cover MadeYouReset. the reset stream count will cause a 420 "Enhance your calm response" to be sent. This depends on Netty 4.1.124 for a bug fix to actually call the encoder by the frame writer.
- xds: Convert CdsLb to `XdsDepManager` ([`297ab05`](https://redirect.github.com/grpc/grpc-java/commit/297ab05ef)). This is part of gRFC A74 to have atomic xDS config updates. This is an internal change, but does change the error description seen in certain cases, especially DEADLINE_EXCEEDED on a brand-new channel.
- census: APIs for stats and tracing ([#​12050](https://redirect.github.com/grpc/grpc-java/issues/12050)) ([`9193701`](https://redirect.github.com/grpc/grpc-java/commit/919370172)). Client channel and server builders with interceptors and factories respectively for stats and tracing.
- stub: simplify `BlockingClientCall` infinite blocking ([#​12217](https://redirect.github.com/grpc/grpc-java/issues/12217)) ([`ba0a732`](https://redirect.github.com/grpc/grpc-java/commit/ba0a7329d)). Move deadline computation into overloads with finite timeouts. Blocking calls without timeouts now do not have to read the clock.
- xds: Do RLS fallback policy eagar start ([#​12211](https://redirect.github.com/grpc/grpc-java/issues/12211)) ([`42e1829`](https://redirect.github.com/grpc/grpc-java/commit/42e1829b3)). In gRPC-Java, the xDS clusters were lazily subscribed, which meant the fallback target which is returned in the RLS config wasn’t subscribed until a RPC actually falls back to it. The delayed resource subscription process in gRPC Java made it more susceptible to the effects of the INITIAL_RESOURCE_FETCH_TIMEOUT compared to other programming languages. It also had impact beyond the RLS cache expiration case, for example, when the first time the client initialized the channel, we couldn't fallback when the intended target times out, because of the lazy subscription. This change starts the fallback LB policy for the default target at the start of RLS policy instead of only when falling back to the default target, which fixes the above mentioned problems.
- xds: Aggregate cluster fixes (A75) ([#​12186](https://redirect.github.com/grpc/grpc-java/issues/12186)) ([`7e982e4`](https://redirect.github.com/grpc/grpc-java/commit/7e982e48a)). The earlier implementation of aggregate clusters concatenated the priorities from the underlying clusters into a single list, so that it could use a single LB policy defined at the aggregate cluster layer to choose a priority from that combined list. However, it turns out that aggregate clusters don't actually define the LB policy in the aggregate cluster; instead, the aggregate cluster uses a special cluster-provided LB policy that first chooses the underlying cluster and then delegates to the LB policy of the underlying cluster. This change implements that.
- api: set size correctly for sets and maps in handling `Metadata` values to be exchanged during a call ([#​12229](https://redirect.github.com/grpc/grpc-java/issues/12229)) ([`8021727`](https://redirect.github.com/grpc/grpc-java/commit/80217275d))
- xds: xdsClient cache transient error for new watchers ([#​12291](https://redirect.github.com/grpc/grpc-java/issues/12291)). When a resource update is NACKed, cache the error and update new watchers that get added with that error instead of making them hang.
- xds: Avoid PriorityLb re-enabling timer on duplicate CONNECTING ([#​12289](https://redirect.github.com/grpc/grpc-java/issues/12289)). If a LB policy gives extraneous updates with state CONNECTING, then it was possible to re-create `failOverTimer` which would then wait the 10 seconds for the child to finish CONNECTING. We only want to give the child one opportunity after transitioning out of READY/IDLE.
- xds: Use a different log name for `XdsClientImpl` and `ControlPlaneClient` ([#​12287](https://redirect.github.com/grpc/grpc-java/issues/12287)). `ControlPlaneClient` uses "xds-cp-client" now instead of "xds-client" while logging.
##### Dependencies Changes
- Upgrade to Netty 4.1.124.Final ([#​12286](https://redirect.github.com/grpc/grpc-java/issues/12286)). This implicitly disables `NettyAdaptiveCumulator` ([#​11284](https://redirect.github.com/grpc/grpc-java/issues/11284)), which can have a performance impact. We delayed upgrading Netty to give time to rework the optimization, but we've gone too long already without upgrading which causes problems for vulnerability tracking.
- bazel: Use `jar_jar` to avoid xds deps ([#​12243](https://redirect.github.com/grpc/grpc-java/issues/12243)) ([`8f09b96`](https://redirect.github.com/grpc/grpc-java/commit/8f09b9689)). The //xds and //xds:orca targets now use `jar_jar` to shade the protobuf generated code. This allows them to use their own private copy of the protos and drop direct Bazel dependencies on cel-spec, grpc, rules_go, com_github_cncf_xds, envoy_api, com_envoyproxy_protoc_gen_validate, and opencensus_proto. This mirrors the shading of protobuf messages done for grpc-xds provided on Maven Central and should simplify dependency management
##### Documentation
- Clarify requirements for creating a cross-user Channel. ([#​12181](https://redirect.github.com/grpc/grpc-java/issues/12181)). The `@SystemApi` runtime visibility requirement isn't really new. It has always been implicit in the required INTERACT_ACROSS_USERS permission, which can only be held by system apps in production. Now deprecated `BinderChannelBuilder#bindAsUser` has always required SDK_INT >= 30. This change just copies that requirement forward to its replacement APIs in `AndroidComponentAddress` and the TARGET_ANDROID_USER `NameResolver.Args`.
- api: Add more Javadoc for `NameResolver.Listener2` interface ([#​12220](https://redirect.github.com/grpc/grpc-java/issues/12220)) ([`d352540`](https://redirect.github.com/grpc/grpc-java/commit/d352540a0))
##### Thanks to
[@​benjaminp](https://redirect.github.com/benjaminp)
[@​werkt](https://redirect.github.com/werkt)
[@​kilink](https://redirect.github.com/kilink)
[@​vimanikag](https://redirect.github.com/vimanikag)
### [`v1.74.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.74.0)
##### Behavior Changes
- compiler: Default to `@generated=omit` ([`f8700a1`](https://redirect.github.com/grpc/grpc-java/commit/f8700a13a)). This omits `javax.annotation.Generated` from the generated code and makes the `org.apache.tomcat:annotations-api` compile-only dependency unnecessary (README and examples changes forthcoming; we delayed those changes until the release landed). You can use the option `@generated=javax` for the previous behavior, but please also file an issue so we can develop alternatives
- compiler: generate blocking v2 unary calls that throw StatusException ([#​12126](https://redirect.github.com/grpc/grpc-java/issues/12126)) ([`a16d655`](https://redirect.github.com/grpc/grpc-java/commit/a16d65591)). Previously, the new blocking stub API was identical to the older blocking stub for unary RPCs and used the unchecked `StatusRuntimeException`. However, feedback demonstrated it was confusing to mix that with the checked `StatusException` in `BlockingClientCall`. Now the new blocking stub uses StatusException throughout. grpc-java continues to support the old generated code, but the version of protoc-gen-grpc-java will dictate which API you see. If you support multiple generated code versions, you can use the older blocking v1 stub for unary RPCs
##### Bug Fixes
- netty: Fix a race that caused RPCs to hang on start when a GOAWAY was received while the RPCs’ headers were being written to the OS ([`b04c673`](https://redirect.github.com/grpc/grpc-java/commit/b04c673fd), [`15c7573`](https://redirect.github.com/grpc/grpc-java/commit/15c757398)). This was a very old race, not a recent regression. All streams should now properly fail instead of hanging, although in some cases they may be transparently retried
- util: OutlierDetection should use nanoTime, not currentTimeMillis ([#​12110](https://redirect.github.com/grpc/grpc-java/issues/12110)) ([`1c43098`](https://redirect.github.com/grpc/grpc-java/commit/1c4309899)). Previously, changes in the wall time would impact its accounting
- xds: Don't allow hostnames in address field in EDS ([#​12123](https://redirect.github.com/grpc/grpc-java/issues/12123)) ([`482dc5c`](https://redirect.github.com/grpc/grpc-java/commit/482dc5c1c)). Only IP addresses were handled properly, and only IP addresses should be handled per gRFC A27
- xds: In resource handling, call onError() for RDS and EDS NACKs ([#​12122](https://redirect.github.com/grpc/grpc-java/issues/12122)) ([`efe9ccc`](https://redirect.github.com/grpc/grpc-java/commit/efe9ccc22)). Previously the resource was NACKed, but gRPC would continue waiting for the resource until a timeout was reached and claim the control plane didn’t send the resource. Now it will fail quickly with an informative error
- xds: Implement equals in RingHashConfig ([`a5eaa66`](https://redirect.github.com/grpc/grpc-java/commit/a5eaa66cc)). Previously all configuration refreshes were considered a new config, which had the potential for causing unexpected inefficiency problems. This was noticed by new code for gRFC A74 xDS Config Tears that is not yet enabled, so there are no known problems that this caused
- LBs should avoid calling LBs after lb.shutdown() ([`1df2a33`](https://redirect.github.com/grpc/grpc-java/commit/1df2a3305)). This fixed pick_first and ring_hash behavior that could cause rare and “random” races in parent load balancers like a `NullPointerException` in `ClusterImplLoadBalancer.createSubchannel()`, which had a ring_hash child. This is most likely to help xDS, as it heavily uses hierarchical LB policies
##### Improvements
- util: Deliver addresses in a random order to shuffle connection creation ordering ([`f07eb47`](https://redirect.github.com/grpc/grpc-java/commit/f07eb47ca)). Previously, connections were created in-order (but non-blocking), so in a fast network the first address could be more likely to connect first given a "microsecond" headstart. That first connection then receives all the buffered RPCs, which could cause temporary, but repeated, load imbalances of the same backend when all clients receive the same list of addresses in the same order. This has been seen in practice, but it is unclear how often it happens. Shuffling has the potential to improve load distribution of new clients when using round_robin, weighted_round_robin, and least_request, which connect simultaneously to multiple addresses
- core: Use lazy message formatting in checkState ([#​12144](https://redirect.github.com/grpc/grpc-java/issues/12144)) ([`26bd0ee`](https://redirect.github.com/grpc/grpc-java/commit/26bd0eee4)). This avoids the potential of unnecessarily formatting an exception as a string when a subchannel fails to connect
- bazel: Migrate java_grpc_library to use DefaultInfo ([#​12148](https://redirect.github.com/grpc/grpc-java/issues/12148)) ([`6f69363`](https://redirect.github.com/grpc/grpc-java/commit/6f69363d9)). This adds compatibility for `--incompatible_disable_target_default_provider_fields`
- binder: Rationalize [@​ThreadSafe-ty](https://redirect.github.com/ThreadSafe-ty) inside BinderTransport ([#​12130](https://redirect.github.com/grpc/grpc-java/issues/12130)) ([`c206428`](https://redirect.github.com/grpc/grpc-java/commit/c20642874))
- binder: Cancel checkAuthorization() request if still pending upon termination ([#​12167](https://redirect.github.com/grpc/grpc-java/issues/12167)) ([`30d40a6`](https://redirect.github.com/grpc/grpc-java/commit/30d40a617))
##### Dependencies
- compiler: Upgrade Protobuf C++ to 22.5 ([#​11961](https://redirect.github.com/grpc/grpc-java/issues/11961)) ([`46485c8`](https://redirect.github.com/grpc/grpc-java/commit/46485c8b6)). This is used by the pre-built protoc-gen-grpc-java plugin on Maven Central. This should have no visible benefit, but gets us closer to upgrading to Protobuf 27 which added edition 2023 support
- release: Migrate artifacts publishing changed from legacy OSSRH to Central Portal ([#​12156](https://redirect.github.com/grpc/grpc-java/issues/12156)) ([`f99b2aa`](https://redirect.github.com/grpc/grpc-java/commit/f99b2aaef)). We aren’t aware of any visible changes to the results on Maven Central
### [`v1.73.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.73.0)
##### API Changes
xds: Enable least request by default ([#​12062](https://redirect.github.com/grpc/grpc-java/issues/12062))
core: Delete the long-deprecated GRPC_PROXY_EXP env variable ([#​11988](https://redirect.github.com/grpc/grpc-java/issues/11988)) ([`908f9f1`](https://redirect.github.com/grpc/grpc-java/commit/908f9f19c)). This was experimental and has been warning when used since v1.8.0. Use the Java-standard -Dhttps.proxyHost and -Dhttps.proxyPort instead
api: Remove deprecated SubchannelPicker.requestConnection() ([`f79ab2f`](https://redirect.github.com/grpc/grpc-java/commit/f79ab2f16)). This API was replaced by LoadBalancer.requestConnection() in v1.22.0
##### Bug Fixes
config: prevents global stats config freeze in ConfiguratorRegistry.getConfigurators() ([#​11991](https://redirect.github.com/grpc/grpc-java/issues/11991)) ([`d4c46a7`](https://redirect.github.com/grpc/grpc-java/commit/d4c46a7f1))
xds: XdsDepManager should ignore updates after shutdown ([`25199e9`](https://redirect.github.com/grpc/grpc-java/commit/25199e9df)). This fixes a source of java.lang.NullPointerException: Cannot invoke "io.grpc.xds.XdsDependencyManager$RdsUpdateSupplier.getRdsUpdate()" because "routeSource" is null regression introduced in v1.72.0
##### Improvements
xds: listener type validation ([#​11933](https://redirect.github.com/grpc/grpc-java/issues/11933)) ([`c8d1e6e`](https://redirect.github.com/grpc/grpc-java/commit/c8d1e6e39))
xds: add the missing xds.authority metric defined in [gRFC A78](https://redirect.github.com/grpc/proposal/blob/master/A78-grpc-metrics-wrr-pf-xds.md#xdsclient) ([#​12018](https://redirect.github.com/grpc/grpc-java/issues/12018)) ([`6cd007d`](https://redirect.github.com/grpc/grpc-java/commit/6cd007d0d))
##### New Features
xds: float LRU cache across interceptors ([#​11992](https://redirect.github.com/grpc/grpc-java/issues/11992)) ([`7a08fdb`](https://redirect.github.com/grpc/grpc-java/commit/7a08fdb7f))
xds: propagate audience from cluster resource in gcp auth filter. This completes the gRFC A83, implementation of GCP Authentication Filter. ([#​11972](https://redirect.github.com/grpc/grpc-java/issues/11972)) ([`84c7713`](https://redirect.github.com/grpc/grpc-java/commit/84c7713b2))
opentelemetry: Implement grpc.lb.backend_service optional label ([`9619453`](https://redirect.github.com/grpc/grpc-java/commit/961945379)). This completes the [gRFC A89](https://redirect.github.com/grpc/proposal/blob/master/A89-backend-service-metric-label.md) implementation, which is enabled when requesting the new label
##### Documentation
api: Remove mention of "epoch" from Ticker.nanoTime() javadocs ([`84bd014`](https://redirect.github.com/grpc/grpc-java/commit/84bd01454))
### [`v1.72.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.72.0)
##### API Changes
- util: Remove deprecated method GracefulSwitchLb.switchTo() ([`f207be3`](https://redirect.github.com/grpc/grpc-java/commit/f207be39a)). It is rarely used outside of gRPC itself. The configuration is passed as lb policy configuration instead
- xds: Add support for custom per-target credentials on the transport ([#​11951](https://redirect.github.com/grpc/grpc-java/issues/11951)) ([`1958e42`](https://redirect.github.com/grpc/grpc-java/commit/1958e4237))
- xds: Explicitly set request hash key for the ring hash LB policy ([`892144d`](https://redirect.github.com/grpc/grpc-java/commit/892144dca))
##### Bug Fixes
- core: Apply ManagedChannelImpl's updateBalancingState() immediately ([`ca4819a`](https://redirect.github.com/grpc/grpc-java/commit/ca4819ac6))
- xds: Fix cluster selection races when updating config selector ([`d82613a`](https://redirect.github.com/grpc/grpc-java/commit/d82613a74))
- otel: Fix span names as per the A72 gRFC changes ([#​11974](https://redirect.github.com/grpc/grpc-java/issues/11974)) ([`94f8e93`](https://redirect.github.com/grpc/grpc-java/commit/94f8e9369))
- xds: ClusterResolverLoadBalancer handle update for both resolved addresses and errors via ResolutionResult ([#​11997](https://redirect.github.com/grpc/grpc-java/issues/11997)) ([`8681786`](https://redirect.github.com/grpc/grpc-java/commit/868178651))
##### Improvements
- netty: Avoid allocating an exception on transport shutdown. This reduces allocation rate for connection-heavy workloads/load testing ([`a57c14a`](https://redirect.github.com/grpc/grpc-java/commit/a57c14a51))
- servlet: Set an explicit description for CANCELLED status ([#​11927](https://redirect.github.com/grpc/grpc-java/issues/11927)) ([`fca1d3c`](https://redirect.github.com/grpc/grpc-java/commit/fca1d3cf4))
- xds: [gRFC A74 xDS Config Tears](https://redirect.github.com/grpc/proposal/blob/master/A74-xds-config-tears.md) implementation in the XdsNameResolver ([`e80c197`](https://redirect.github.com/grpc/grpc-java/commit/e80c19745)). While there is more remaining, users may already see reduced latency when resources are replaced. For example, if changing a route from one backend service to another, RPCs may see less latency during the transition
- core: Log any exception during channel panic because of exception ([`3961a92`](https://redirect.github.com/grpc/grpc-java/commit/3961a923a)). This prevents the exception from propagating up the stack on an arbitrary thread. Such exceptions are rarely interesting. Instead, the exception that caused the channel panic is the important one, and RPCs will still fail with its details
- util: Graceful switch to new LB when leaving CONNECTING ([`2e260a4`](https://redirect.github.com/grpc/grpc-java/commit/2e260a4bb)). Previously when using xDS and the configuration changes the LB policy, the old LB policy is used until the new one is READY. Now the old LB policy is used until the new policy becomes READY, TRANSIENT_FAILURE, or IDLE
- core: Use java.time.Time.getNano directly in InstantTimeProvider. Previously reflection was used which would confuse R8 full mode ([#​11977](https://redirect.github.com/grpc/grpc-java/issues/11977)) ([`7507a9e`](https://redirect.github.com/grpc/grpc-java/commit/7507a9ec0))
- core: Avoid cancellation exceptions when notifying watchers that already have their connections cancelled ([#​11934](https://redirect.github.com/grpc/grpc-java/issues/11934)) ([`350f90e`](https://redirect.github.com/grpc/grpc-java/commit/350f90e1a))
- rls: allow maxAge in RLS config to exceed 5 minutes if staleAge is set. Previously, the limit was 5 minutes, which isn't enough for some gRPC clients ([#​11931](https://redirect.github.com/grpc/grpc-java/issues/11931)) ([`c340f4a`](https://redirect.github.com/grpc/grpc-java/commit/c340f4a2f))
- xds: avoid unnecessary dns lookup for CIDR addresses ([#​11932](https://redirect.github.com/grpc/grpc-java/issues/11932)) ([`602aece`](https://redirect.github.com/grpc/grpc-java/commit/602aece08))
- netty: Swap to UniformStreamByteDistributor ([#​11954](https://redirect.github.com/grpc/grpc-java/issues/11954)) ([`2f52a00`](https://redirect.github.com/grpc/grpc-java/commit/2f52a0036)). gRPC will no longer observe the HTTP/2 priorities, which were not used directly by gRPC and deprecated in RFC 9113
- core: Avoid Set.removeAll() when passing a possibly-large List ([#​11994](https://redirect.github.com/grpc/grpc-java/issues/11994)) ([`666136b`](https://redirect.github.com/grpc/grpc-java/commit/666136b4b))
- stub: trailersFromThrowable() metadata should be copied ([#​11979](https://redirect.github.com/grpc/grpc-java/issues/11979)) ([`a6e1c1f`](https://redirect.github.com/grpc/grpc-java/commit/a6e1c1f09))
##### New Features
- xds: xDS-based HTTP CONNECT configuration ([#​11861](https://redirect.github.com/grpc/grpc-java/issues/11861)) ([`1219706`](https://redirect.github.com/grpc/grpc-java/commit/12197065f))
- netty: Per-rpc authority verification against peer cert subject names. Overriding transport authority at rpc time is only allowed when using TlsChannelCredentials. The per-rpc authority verification feature is guarded by the environment variable GRPC_ENABLE_PER_RPC_AUTHORITY_CHECK in this release. When this is false or not set, the rpc will not fail when the authority verification fails but a warning will be logged. In a subsequent release the usage of this environment variable will be removed and RPCs will start failing if the authority doesn't match the peer certificate names. The environment variable is temporary; if you are depending on the existing insecure behavior, please file an issue ([#​11724](https://redirect.github.com/grpc/grpc-java/issues/11724)) ([`cdab410`](https://redirect.github.com/grpc/grpc-java/commit/cdab410b8))
##### Thanks to
[@​panchenko](https://redirect.github.com/panchenko)
[@​emmanuel-ferdman](https://redirect.github.com/emmanuel-ferdman)
[@​JoeCqupt](https://redirect.github.com/JoeCqupt)
### [`v1.71.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.71.0)
##### API Changes
- xds: Enable Xds Client Fallback by default. This allows having a backup xDS server as described in gRFC [A71-xds-fallback.md](https://redirect.github.com/grpc/proposal/blob/master/A71-xds-fallback.md) ([#​11817](https://redirect.github.com/grpc/grpc-java/issues/11817)) ([`176f3ee`](https://redirect.github.com/grpc/grpc-java/commit/176f3eed1))
- protobuf: Experimental API marshallerWithRecursionLimit in `ProtoUtils` is now stabilized ([#​11884](https://redirect.github.com/grpc/grpc-java/issues/11884)) ([`90b1c4f`](https://redirect.github.com/grpc/grpc-java/commit/90b1c4fe9))
##### Bug Fixes
- xds: Cluster weights should be uint32 ([`199a7ea`](https://redirect.github.com/grpc/grpc-java/commit/199a7ea3e)). They were previously processed as int32, although the sum of weights was checked to be positive. So this would have caused a very large weight to never be selected and to reduce the chances of immediately-following clusters to be selected. There have been no reports of control planes using such large weights
- xds: Fix an unlikely infinite loop triggered by route update ([`199a7ea`](https://redirect.github.com/grpc/grpc-java/commit/199a7ea3e)). Triggering required the old cluster to no longer be used, an RPC processing when the update arrived, and for a RPC to not match any route in the new config. There have been no reports of this actually happening
- core: Release data frame if it is received before the headers ([`dc316f7`](https://redirect.github.com/grpc/grpc-java/commit/dc316f7fd))
##### Improvements
- Replace jsr305's `CheckReturnValue` with Error Prone's ([#​11811](https://redirect.github.com/grpc/grpc-java/issues/11811)) ([`7b5d069`](https://redirect.github.com/grpc/grpc-java/commit/7b5d0692c))
- core: optimize number of buffer allocations for message sizes larger than 1 MB ([#​11879](https://redirect.github.com/grpc/grpc-java/issues/11879)) ([`5a7f350`](https://redirect.github.com/grpc/grpc-java/commit/5a7f35053))
- core: Update the retry backoff range from \[0, 1] to \[0.8, 1.2] as per the A6 redefinition ([#​11858](https://redirect.github.com/grpc/grpc-java/issues/11858)) ([`44e92e2`](https://redirect.github.com/grpc/grpc-java/commit/44e92e2c2))
- core: include last pick status in status message when wait-for-ready RPC’s deadline expires ([#​11851](https://redirect.github.com/grpc/grpc-java/issues/11851)) ([`7585b16`](https://redirect.github.com/grpc/grpc-java/commit/7585b1607)). This makes it much easier to debug connectivity issues when using wait-for-ready RPCs
- xds: Include max concurrent request limit in the error status for concurrent connections limit exceeded ([#​11845](https://redirect.github.com/grpc/grpc-java/issues/11845)) ([`0f5503e`](https://redirect.github.com/grpc/grpc-java/commit/0f5503ebb))
- netty, servlet: Remove 4096 min write buffer size because `MessageFramer`.flush() is being called between every message, so messages are never combined and the larger allocation just wastes memory. ([`4a10a38`](https://redirect.github.com/grpc/grpc-java/commit/4a10a3816), [`7153ff8`](https://redirect.github.com/grpc/grpc-java/commit/7153ff852))
- core: When `ClientStreamObserver` closes the response observer log the error message if this operation fails ([#​11880](https://redirect.github.com/grpc/grpc-java/issues/11880)) ([`302342c`](https://redirect.github.com/grpc/grpc-java/commit/302342cfc))
- bom: use gradle java-platform to build pom instead of custom xml generation ([#​11875](https://redirect.github.com/grpc/grpc-java/issues/11875)) ([`3142928`](https://redirect.github.com/grpc/grpc-java/commit/3142928fa))
- xds: Reuse filter interceptors on client-side across RPCs ([`c506190`](https://redirect.github.com/grpc/grpc-java/commit/c506190b0), [`b3db8c2`](https://redirect.github.com/grpc/grpc-java/commit/b3db8c248)). This was an internal refactor that should have no user-visible change
- alts: Enhance `AltsContextUtil` to allow getting the `AltsContext` on client-side ([`b1bc0a9`](https://redirect.github.com/grpc/grpc-java/commit/b1bc0a9d2))
- xds: Envoy proto sync to 2024-11-11 ([#​11816](https://redirect.github.com/grpc/grpc-java/issues/11816)) ([`b44ebce`](https://redirect.github.com/grpc/grpc-java/commit/b44ebce45))
##### Documentation
- examples: Update `HelloWorldServer` to use Executor ([#​11850](https://redirect.github.com/grpc/grpc-java/issues/11850)) ([`16edf7a`](https://redirect.github.com/grpc/grpc-java/commit/16edf7ac4))
- examples: Add README for all examples lacking it ([#​11676](https://redirect.github.com/grpc/grpc-java/issues/11676)) ([`9e86299`](https://redirect.github.com/grpc/grpc-java/commit/9e8629914))
##### Dependencies
- Version upgrades ([#​11874](https://redirect.github.com/grpc/grpc-java/issues/11874)) ([`fc8571a`](https://redirect.github.com/grpc/grpc-java/commit/fc8571a0e))
- Upgrade netty-tcnative to 2.0.70 ([`122b683`](https://redirect.github.com/grpc/grpc-java/commit/122b68371))
##### Thanks to
[@​benjamin](https://redirect.github.com/benjamin)
[@​panchenko](https://redirect.github.com/panchenko)
[@​harshagoo94](https://redirect.github.com/harshagoo94)
[@​NaveenPrasannaV](https://redirect.github.com/NaveenPrasannaV)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM, on day 1 of the month ( * 0-3 1 * * ) (UTC), 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 these updates again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4yMi4xIiwidXBkYXRlZEluVmVyIjoiNDAuMjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21lcmdlIl19-->1 parent 15daf3f commit cd8f5fa
1 file changed
+5
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
38 | | - | |
39 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
40 | 40 | | |
41 | 41 | | |
42 | 42 | | |
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | | - | |
52 | | - | |
| 51 | + | |
| 52 | + | |
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
| |||
0 commit comments