solrbot opened a new pull request, #3560:
URL: https://github.com/apache/solr/pull/3560

   This PR contains the following updates:
   
   | Package | Type | Update | Change |
   |---|---|---|---|
   | [io.grpc:grpc-xds](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-util](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-stub](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-services](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-rls](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-protobuf-lite](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-protobuf](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-netty-shaded](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-netty](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-inprocess](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-grpclb](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-googleapis](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-core](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-context](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-auth](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-api](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   | [io.grpc:grpc-alts](https://redirect.github.com/grpc/grpc-java) | 
dependencies | minor | `1.65.1` -> `1.75.0` |
   
   ---
   
   ### Release Notes
   
   <details>
   <summary>grpc/grpc-java (io.grpc:grpc-xds)</summary>
   
   ### 
[`v1.75.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.75.0)
   
   ##### Behavior Changes
   
   - binder: Introduce server pre-authorization 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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) 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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` 
([#&#8203;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 
([#&#8203;12286](https://redirect.github.com/grpc/grpc-java/issues/12286)). 
This implicitly disables `NettyAdaptiveCumulator` 
([#&#8203;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 
([#&#8203;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. 
([#&#8203;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 
([#&#8203;12220](https://redirect.github.com/grpc/grpc-java/issues/12220)) 
([`d352540`](https://redirect.github.com/grpc/grpc-java/commit/d352540a0))
   
   ##### Thanks to
   
   [@&#8203;benjaminp](https://redirect.github.com/benjaminp)
   [@&#8203;werkt](https://redirect.github.com/werkt)
   [@&#8203;kilink](https://redirect.github.com/kilink)
   [@&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
[@&#8203;ThreadSafe-ty](https://redirect.github.com/ThreadSafe-ty) inside 
BinderTransport 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;12062](https://redirect.github.com/grpc/grpc-java/issues/12062))
   core: Delete the long-deprecated GRPC\_PROXY\_EXP env variable 
([#&#8203;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() 
([#&#8203;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 
([#&#8203;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)
 ([#&#8203;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 
([#&#8203;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. 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;11932](https://redirect.github.com/grpc/grpc-java/issues/11932)) 
([`602aece`](https://redirect.github.com/grpc/grpc-java/commit/602aece08))
   - netty: Swap to UniformStreamByteDistributor 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;11724](https://redirect.github.com/grpc/grpc-java/issues/11724)) 
([`cdab410`](https://redirect.github.com/grpc/grpc-java/commit/cdab410b8))
   
   ##### Thanks to
   
   [@&#8203;panchenko](https://redirect.github.com/panchenko)
   [@&#8203;emmanuel-ferdman](https://redirect.github.com/emmanuel-ferdman)
   [@&#8203;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)
 ([#&#8203;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 
([#&#8203;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 
([#&#8203;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 ([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;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 
([#&#8203;11676](https://redirect.github.com/grpc/grpc-java/issues/11676)) 
([`9e86299`](https://redirect.github.com/grpc/grpc-java/commit/9e8629914))
   
   ##### Dependencies
   
   - Version upgrades 
([#&#8203;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
   
   [@&#8203;benjamin](https://redirect.github.com/benjamin)
   [@&#8203;panchenko](https://redirect.github.com/panchenko)
   [@&#8203;harshagoo94](https://redirect.github.com/harshagoo94)
   [@&#8203;NaveenPrasannaV](https://redirect.github.com/NaveenPrasannaV)
   
   ### 
[`v1.70.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.70.0)
   
   ##### **Bug Fixes**
   
   - Re-enable animalsniffer, fixing most violations 
([`8ea3629`](https://redirect.github.com/grpc/grpc-java/commit/8ea362937)). 
Violations would only have triggered on API level 23 and earlier, and the 
violations fixed here were highly unlikely to be triggered
   - api: Fix Android API level 23 and earlier compatibility for 
StatusRuntimeException without stacktrace 
([#&#8203;11072](https://redirect.github.com/grpc/grpc-java/issues/11072)) 
([`ebe2b48`](https://redirect.github.com/grpc/grpc-java/commit/ebe2b4867)). 
This fixes a regression introduced in 1.64.0. The regression should have caused 
failures on API level 23 and earlier when a StatusRuntimeException or 
StatusException was created. However, for unknown reasons tests on old devices 
didn’t notice issues
   - okhttp: Improve certificate handling by rejecting non-ASCII subject 
alternative names and hostnames as seen in CVE-2021-0341 
([#&#8203;11749](https://redirect.github.com/grpc/grpc-java/issues/11749)) 
([`a0982ca`](https://redirect.github.com/grpc/grpc-java/commit/a0982ca0a)). 
Hostnames are considered trusted and CAs are required to use punycode for 
non-ASCII hostnames, so this is expected to provide defense-in-depth. See also 
the [related GoSecure blog 
post](https://gosecure.ai/blog/2020/10/27/weakness-in-java-tls-host-verification/)
 and the [AOSP 
fix](https://android.googlesource.com/platform/external/okhttp/+/ddc934efe3ed06ce34f3724d41cfbdcd7e7358fc)
   - okhttp: Fix for ipv6 link local with scope 
([#&#8203;11725](https://redirect.github.com/grpc/grpc-java/issues/11725)) 
([`65b32e6`](https://redirect.github.com/grpc/grpc-java/commit/65b32e60e))
   - xds: Preserve nonce when unsubscribing last watcher of a particular type 
so that new discovery requests of that type are handled correctly 
([`1cf1927`](https://redirect.github.com/grpc/grpc-java/commit/1cf1927d1)). 
This (along with 
[`6c12c2b`](https://redirect.github.com/grpc/grpc-java/commit/6c12c2bd2)) fixes 
a nonce-handling regression introduced in 1.66.0 that could cause resources to 
appear to not exist until re-creating the ADS stream. Triggering the behavior 
required specific config changes. It is easiest to trigger when clusters use 
EDS and routes are changed from one cluster to another. The error “found 0 leaf 
(logical DNS or EDS) clusters for root cluster” might then be seen
   - xds: Remember nonces for unknown types 
([`6c12c2b`](https://redirect.github.com/grpc/grpc-java/commit/6c12c2bd2))
   - xds: Unexpected types in the bootstrap’s server\_features should be 
ignored 
([`e8ff6da`](https://redirect.github.com/grpc/grpc-java/commit/e8ff6da2c)). 
They were previously required to be strings
   - xds: Remove xds authority label from metric registration 
([#&#8203;11760](https://redirect.github.com/grpc/grpc-java/issues/11760)) 
([`6516c73`](https://redirect.github.com/grpc/grpc-java/commit/6516c7387)). 
This fixes the error “Incorrect number of required labels provided. Expected: 
4” introduced in 1.69.0
   - xds: Fixed unsupported unsigned 32 bits issue for circuit breaker 
([#&#8203;11735](https://redirect.github.com/grpc/grpc-java/issues/11735)) 
([`f8f6139`](https://redirect.github.com/grpc/grpc-java/commit/f8f613984)). 
This fixes clients treating large max\_requests as “no requests” and failing 
all requests
   
   ##### **Improvements**
   
   - api: Introduce custom NameResolver.Args 
([#&#8203;11669](https://redirect.github.com/grpc/grpc-java/issues/11669)) 
([`0b2d440`](https://redirect.github.com/grpc/grpc-java/commit/0b2d44098))
   - stub: Introduce new API:  BlockingStubV2 which supports Bidi streaming, 
Client streaming, a cleaner Server streaming and Unary RPCs 
([#&#8203;10318](https://redirect.github.com/grpc/grpc-java/issues/10318)) 
([`ea8c31c`](https://redirect.github.com/grpc/grpc-java/commit/ea8c31c30))
   - bazel: Remove workaround for DoNotCall fixed in Bazel 3.4 
([`805cad3`](https://redirect.github.com/grpc/grpc-java/commit/805cad378))
   - binder: A standard API for pointing resolvers at a different Android User. 
([#&#8203;11775](https://redirect.github.com/grpc/grpc-java/issues/11775)) 
([`1126a8e`](https://redirect.github.com/grpc/grpc-java/commit/1126a8e30))
   - xds: Fix XDS control plane client retry timer backoff duration when 
connection closes after results are received 
([#&#8203;11766](https://redirect.github.com/grpc/grpc-java/issues/11766)) 
([`ef7c2d5`](https://redirect.github.com/grpc/grpc-java/commit/ef7c2d59c))
   - xds: Parsing xDS Cluster Metadata 
([#&#8203;11741](https://redirect.github.com/grpc/grpc-java/issues/11741)) 
([`1edc4d8`](https://redirect.github.com/grpc/grpc-java/commit/1edc4d84d)). Not 
used actively, but this adds validation. The validation is unlikely to fail but 
may reject invalid resources.
   - xds: Use "#server" as dataplane target value for xDS enabled gRPC servers 
([#&#8203;11715](https://redirect.github.com/grpc/grpc-java/issues/11715)) 
([`ebb43a6`](https://redirect.github.com/grpc/grpc-java/commit/ebb43a69e)). 
This only impacts the `grpc.target` label in `grpc.xds_client.*` metrics. 
Previously the empty string was used
   - rls: Reduce RLS debug channel logging 
([`7f9c1f3`](https://redirect.github.com/grpc/grpc-java/commit/7f9c1f39f)). 
This only matters when debug logging is enabled
   
   ##### **Documentation**
   
   - examples: Simplify graceful shutdown in Hostname example 
([`f1109e4`](https://redirect.github.com/grpc/grpc-java/commit/f1109e421))
   - examples: Remove references to 
maven-central.storage-download.googleapis.com 
([`c96e926`](https://redirect.github.com/grpc/grpc-java/commit/c96e926e6))
   - examples: Updated the attachHeaders to newAttachHeadersInterceptor in 
HeaderClientInterceptor 
([#&#8203;11759](https://redirect.github.com/grpc/grpc-java/issues/11759)) 
([`5e8abc6`](https://redirect.github.com/grpc/grpc-java/commit/5e8abc677))
   
   ##### **Dependencies**
   
   - Bazel 8 is released, so replace Bazel 6 testing with Bazel 7 
([`8a5f777`](https://redirect.github.com/grpc/grpc-java/commit/8a5f7776d))
   
   ##### **Thanks to**
   
   - [@&#8203;panchenko](https://redirect.github.com/panchenko)
   - [@&#8203;benjaminp](https://redirect.github.com/benjaminp)
   - [@&#8203;ZachChuba](https://redirect.github.com/ZachChuba)
   - [@&#8203;vinodhabib](https://redirect.github.com/vinodhabib)
   
   ### 
[`v1.69.1`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.69.1)
   
   ##### Bug Fixes
   
   - okhttp: Improve certificate handling by rejecting non-ASCII subject 
alternative names and hostnames as seen in CVE-2021-0341 
([#&#8203;11749](https://redirect.github.com/grpc/grpc-java/issues/11749)) 
([`a0982ca`](https://redirect.github.com/grpc/grpc-java/commit/a0982ca0a)). 
Hostnames are considered trusted and CAs are required to use punycode for 
non-ASCII hostnames, so this is expected to provide defense-in-depth. See also 
the [related GoSecure blog 
post](https://gosecure.ai/blog/2020/10/27/weakness-in-java-tls-host-verification/)
 and the [AOSP 
fix](https://android.googlesource.com/platform/external/okhttp/+/ddc934efe3ed06ce34f3724d41cfbdcd7e7358fc)
   - xds: Preserve nonce when unsubscribing last watcher of a particular type 
so that new discovery requests of that type are handled correctly 
([`1cf1927`](https://redirect.github.com/grpc/grpc-java/commit/1cf1927d1)). 
This (along with 
[`6c12c2b`](https://redirect.github.com/grpc/grpc-java/commit/6c12c2bd2)) fixes 
a nonce-handling regression introduced in 1.66.0 that could cause resources to 
appear to not exist until re-creating the ADS stream. Triggering the behavior 
required specific config changes. It is easiest to trigger when clusters use 
EDS and routes are changed from one cluster to another. The error “found 0 leaf 
(logical DNS or EDS) clusters for root cluster” might then be seen
   - xds: Remember nonces for unknown types 
([`6c12c2b`](https://redirect.github.com/grpc/grpc-java/commit/6c12c2bd2))
   - xds: Unexpected types in the bootstrap’s server\_features should be 
ignored 
([`e8ff6da`](https://redirect.github.com/grpc/grpc-java/commit/e8ff6da2c)). 
They were previously required to be strings
   - xds: Fixed unsupported unsigned 32 bits issue for circuit breaker 
([#&#8203;11735](https://redirect.github.com/grpc/grpc-java/issues/11735)) 
([`f8f6139`](https://redirect.github.com/grpc/grpc-java/commit/f8f613984)). 
This fixes clients treating large max\_requests as “no requests” and failing 
all requests
   - xds: Remove xds authority label from metric registration 
([#&#8203;11760](https://redirect.github.com/grpc/grpc-java/issues/11760)) 
([`6516c73`](https://redirect.github.com/grpc/grpc-java/commit/6516c7387)). 
This fixes the error “Incorrect number of required labels provided. Expected: 
4” introduced in 1.69.0
   
   ### 
[`v1.69.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.69.0)
   
   **v1.69.0**
   
   New Features
   
   - api: Allow `LoadBalancer`s to specify an authority 
per-RPC.([#&#8203;11631](https://redirect.github.com/grpc/grpc-java/issues/11631))
 ([`c167ead`](https://redirect.github.com/grpc/grpc-java/commit/c167ead85)) 
CallOptions.withAuthority() has higher precedence.
   - netty: Add soft Metadata size limit enforcement. 
([#&#8203;11603](https://redirect.github.com/grpc/grpc-java/issues/11603)) 
([`735b3f3`](https://redirect.github.com/grpc/grpc-java/commit/735b3f3fe)) The 
soft limit is a lower size limit that fails an increasing percentage of RPCs as 
the Metadata size approaches the upper limit. This can be used as an “early 
warning” that the Metadata size is growing too large
   - alts: support altsCallCredentials in `GoogleDefaultChannelCredentials` 
([#&#8203;11634](https://redirect.github.com/grpc/grpc-java/issues/11634)) 
([`ba8ab79`](https://redirect.github.com/grpc/grpc-java/commit/ba8ab796e))
   - xds: Add grpc.xds\_client metrics, as documented by [OpenTelemetry 
Metrics](https://grpc.io/docs/guides/opentelemetry-metrics/#xdsclient-instruments)
 ([#&#8203;11661](https://redirect.github.com/grpc/grpc-java/issues/11661)) 
([`20d09ce`](https://redirect.github.com/grpc/grpc-java/commit/20d09cee5)). 
`grpc.xds.authority` is not yet available
   
   Bug Fixes
   
   - api: When forwarding from `Listener` onAddresses to `Listener2` continue 
to use onResult 
([#&#8203;11666](https://redirect.github.com/grpc/grpc-java/issues/11666)) 
([`dae078c`](https://redirect.github.com/grpc/grpc-java/commit/dae078c0a)). 
This fixes a 1.68.1 "IllegalStateException: Not called from the 
SynchronizationContext" regression 
([#&#8203;11662](https://redirect.github.com/grpc/grpc-java/issues/11662)) that 
could be seen in certain custom NameResolvers
   - okhttp: If the frame handler thread is null do not schedule it on the 
executor 
([`ef1fe87`](https://redirect.github.com/grpc/grpc-java/commit/ef1fe8737)). 
This fixes a 1.68.1 NullPointerException regression when a custom 
transportExecutor was provided to the channel and it did not have enough 
threads to run new tasks
   
   Improvements
   
   - api: Add `java.time.Duration` overloads to `CallOptions`, `AbstractStub` 
methods that take TimeUnit and a time value 
([#&#8203;11562](https://redirect.github.com/grpc/grpc-java/issues/11562)) 
([`766b923`](https://redirect.github.com/grpc/grpc-java/commit/766b92379))
   - core: Make timestamp usage in Channelz use nanos from Java.time.Instant 
when available 
([#&#8203;11604](https://redirect.github.com/grpc/grpc-java/issues/11604)) 
([`9176b55`](https://redirect.github.com/grpc/grpc-java/commit/9176b5528)). 
This increases the timestamp precision from milliseconds
   - okhttp: Fix for ipv6 link local with scope 
([#&#8203;11725](https://redirect.github.com/grpc/grpc-java/issues/11725)[) 
(e98e7445b)](https://redirect.github.com/grpc/grpc-java/commit/e98e7445be6209ed4300724d6c2769635ceef5e4)
   - binder: Let `AndroidComponentAddress` specify a target UserHandle 
([#&#8203;11670](https://redirect.github.com/grpc/grpc-java/issues/11670)) 
([`e58c998`](https://redirect.github.com/grpc/grpc-java/commit/e58c998a4))
   - servlet: Deframe failures should be logged on the server as warnings 
([#&#8203;11645](https://redirect.github.com/grpc/grpc-java/issues/11645)) 
([`a5db67d`](https://redirect.github.com/grpc/grpc-java/commit/a5db67d0c))
   - s2a: Rename the Bazel target s2av2\_credentials to s2a 
([`29dd9ba`](https://redirect.github.com/grpc/grpc-java/commit/29dd9bad3)). The 
target s2a had been referenced by IO\_GRPC\_GRPC\_JAVA\_OVERRIDE\_TARGETS but 
didn’t previously exist
   - services: Make channelz work with proto lite 
([#&#8203;11685](https://redirect.github.com/grpc/grpc-java/issues/11685)) 
([`b170334`](https://redirect.github.com/grpc/grpc-java/commit/b1703345f)). 
This compatibility is on the source level. There is not a pre-built binary on 
Maven Central that supports proto lite
   - services: Deprecate ProtoReflectionService 
([#&#8203;11681](https://redirect.github.com/grpc/grpc-java/issues/11681)) 
([`921f88a`](https://redirect.github.com/grpc/grpc-java/commit/921f88ae3)). The 
class implements the deprecated v1alpha of the reflection protocol. Prefer 
ProtoReflectionServiceV1, which implements the v1 version of the reflection 
protocol
   
   Dependencies
   
   - Upgrade proto-google-common-protos to 2.48.0 
([`1993e68`](https://redirect.github.com/grpc/grpc-java/commit/1993e68b0))
   - Upgrade google-auth-library to 1.24.1 
([`1993e68`](https://redirect.github.com/grpc/grpc-java/commit/1993e68b0))
   - Upgrade error\_prone\_annotations to 2.30.0 
([`1993e68`](https://redirect.github.com/grpc/grpc-java/commit/1993e68b0))
   - Upgrade Guava to 33.3.1-android 
([`1993e68`](https://redirect.github.com/grpc/grpc-java/commit/1993e68b0))
   - Upgrade opentelemetry-api to 1.43.0 
([`1993e68`](https://redirect.github.com/grpc/grpc-java/commit/1993e68b0))
   - xds: Remove Bazel dependency on xds v2 
([`664f1fc`](https://redirect.github.com/grpc/grpc-java/commit/664f1fcf8)). 
This had been done for the Maven Central binaries in 1.63.0, but had been 
missed for Bazel builds
   
   Documentation
   
   - binder: Update error codes doc for new "Safer Intent" rules. 
([#&#8203;11639](https://redirect.github.com/grpc/grpc-java/issues/11639)) 
([`fe350cf`](https://redirect.github.com/grpc/grpc-java/commit/fe350cfd5))
   - examples: Use xds-enabled server and xds credentials in 
example-gcp-csm-observability 
([#&#8203;11706](https://redirect.github.com/grpc/grpc-java/issues/11706)) 
([`a79982c`](https://redirect.github.com/grpc/grpc-java/commit/a79982c7f))
   
   Thanks to\
   [@&#8203;niloc132](https://redirect.github.com/niloc132)\
   [@&#8203;rockspore](https://redirect.github.com/rockspore)\
   [@&#8203;SreeramdasLavanya](https://redirect.github.com/SreeramdasLavanya)\
   [@&#8203;vinodhabib](https://redirect.github.com/vinodhabib)
   
   ### 
[`v1.68.3`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.68.3)
   
   ##### Bug Fixes
   
   - okhttp: Improve certificate handling by rejecting non-ASCII subject 
alternative names and hostnames as seen in CVE-2021-0341 
([#&#8203;11749](https://redirect.github.com/grpc/grpc-java/issues/11749)) 
([`a0982ca`](https://redirect.github.com/grpc/grpc-java/commit/a0982ca0a)). 
Hostnames are considered trusted and CAs are required to use punycode for 
non-ASCII hostnames, so this is expected to provide defense-in-depth. See also 
the [related GoSecure blog 
post](https://gosecure.ai/blog/2020/10/27/weakness-in-java-tls-host-verification/)
 and the [AOSP 
fix](https://android.googlesource.com/platform/external/okhttp/+/ddc934efe3ed06ce34f3724d41cfbdcd7e7358fc)
   - xds: Preserve nonce when unsubscribing last watcher of a particular type 
so that new discovery requests of that type are handled correctly 
([`1cf1927`](https://redirect.github.com/grpc/grpc-java/commit/1cf1927d1)). 
This (along with 
[`6c12c2b`](https://redirect.github.com/grpc/grpc-java/commit/6c12c2bd2)) fixes 
a nonce-handling regression introduced in 1.66.0 that could cause resources to 
appear to not exist until re-creating the ADS stream. Triggering the behavior 
required specific config changes. It is easiest to trigger when clusters use 
EDS and routes are changed from one cluster to another. The error “found 0 leaf 
(logical DNS or EDS) clusters for root cluster” might then be seen
   - xds: Remember nonces for unknown types 
([`6c12c2b`](https://redirect.github.com/grpc/grpc-java/commit/6c12c2bd2))
   - xds: Unexpected types in the bootstrap’s server\_features should be 
ignored 
([`e8ff6da`](https://redirect.github.com/grpc/grpc-java/commit/e8ff6da2c)). 
They were previously required to be strings
   - xds: Fixed unsupported unsigned 32 bits issue for circuit breaker 
([#&#8203;11735](https://redirect.github.com/grpc/grpc-java/issues/11735)) 
([`f8f6139`](https://redirect.github.com/grpc/grpc-java/commit/f8f613984)). 
This fixes clients treating large max\_requests as “no requests” and failing 
all requests
   
   ### 
[`v1.68.2`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.68.2)
   
   ##### Bug Fixes
   
   - api: When forwarding from Listener onAddresses to Listener2 continue to 
use onResult 
([#&#8203;11688](https://redirect.github.com/grpc/grpc-java/pull/11688)). This 
fixes a 1.68.1 "IllegalStateException: Not called from the 
SynchronizationContext" regression 
([#&#8203;11662](https://redirect.github.com/grpc/grpc-java/issues/11662)) that 
could be seen in certain custom NameResolvers
   - okhttp: If the frame handler thread is null do not schedule it on the 
executor 
([#&#8203;11716](https://redirect.github.com/grpc/grpc-java/pull/11716)). This 
fixes a 1.68.1 NullPointerException regression when a custom transportExecutor 
was provided to the channel and it did not have enough threads to run new tasks
   
   ##### Improvements
   
   - examples: Use xds-enabled server and xds credentials in 
example-gcp-csm-observability 
([#&#8203;11707](https://redirect.github.com/grpc/grpc-java/pull/11707))
   
   ### 
[`v1.68.1`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.68.1)
   
   v1.68.0 was a mistake. This is the first release of version 1.68.x
   
   ##### Bug Fixes
   
   - xds: Fix NullPointerException introduced in "Fix load reporting when pick 
first is used for locality-routing" 
([#&#8203;11553](https://redirect.github.com/grpc/grpc-java/issues/11553)). 
This fix was in 1.67.1 but not 1.68.0
   
   ##### Behavior Changes
   
   - core: JSON parsing rejects duplicate keys in objects 
([#&#8203;11575](https://redirect.github.com/grpc/grpc-java/issues/11575)) 
([`4be69e3`](https://redirect.github.com/grpc/grpc-java/commit/4be69e3f8)). 
This is the existing behavior in C core. Duplicate keys in objects are 
dangerous as which value takes effect is undefined. Previously, the last value 
was used
   - okhttp: Detect transport executors with no remaining threads 
([#&#8203;11503](https://redirect.github.com/grpc/grpc-java/issues/11503)) 
([`3a6be9c`](https://redirect.github.com/grpc/grpc-java/commit/3a6be9ca1)). The 
transport uses two threads, but one is on-demand. If the executor provided to 
`builder.transportExecutor()` runs out of threads (e.g., it is a fixed-size 
thread pool), *all* transports can be wedged, unable to run on-demand tasks, 
until keepalive kills one of them. Two threads are now used when handshaking a 
new transport, and the transport will time out after 1 second with “Timed out 
waiting for second handshake thread” if two threads are unavailable
   - gcp-csm-o11y: Get  `mesh_id` value from `CSM_MESH_ID` environment 
variable, instead of getting it from bootstrap file 
([`84d30af`](https://redirect.github.com/grpc/grpc-java/commit/84d30afad))
   
   ##### Improvements
   
   - New grpc-context-override-opentelemetry artifact 
([#&#8203;11523](https://redirect.github.com/grpc/grpc-java/issues/11523)) 
([`782a44a`](https://redirect.github.com/grpc/grpc-java/commit/782a44ad6)) 
([#&#8203;11599](https://redirect.github.com/grpc/grpc-java/issues/11599)) 
([`e59ae5f`](https://redirect.github.com/grpc/grpc-java/commit/e59ae5fad)). 
This is a `io.grpc.Context` storage override to store its state in 
`io.opentelemetry.context.Context`. Libraries should not add a dependency on 
this artifact, as applications can only have one storage override in their 
classpath
   - New grpc-s2a artifact. It is a transport that offloads the handshake 
similar to ALTS, but for TLS. It provides `io.grpc.s2a.S2AChannelCredentials`
   - api: Enhance name resolver \`ResolutionResult\` to hold addresses or error 
so the single listener API *onResult2* is used to convey both success and error 
cases for name resolution 
([#&#8203;11330](https://redirect.github.com/grpc/grpc-java/issues/11330)) 
([`1ded8af`](https://redirect.github.com/grpc/grpc-java/commit/1ded8aff8))
   - core: Handle NameResolver/LoadBalancer exceptions when panicking 
([`b692b9d`](https://redirect.github.com/grpc/grpc-java/commit/b692b9d26)). 
This expands the class of bugs that will fail RPCs with the panic error, versus 
some undefined behavior
   - core: Use the default service config in case of initial name resolver 
address resolution error 
([#&#8203;11577](https://redirect.github.com/grpc/grpc-java/issues/11577)) 
([`fa26a8b`](https://redirect.github.com/grpc/grpc-java/commit/fa26a8bc5))
   - core: `StreamTracer.inboundMessageRead()` now reports uncompressed message 
size when the message does not need compression 
([#&#8203;11598](https://redirect.github.com/grpc/grpc-java/issues/11598)) 
([`2aae68e`](https://redirect.github.com/grpc/grpc-java/commit/2aae68e11)). 
Previously it always reported `-1` (unknown)
   - netty: Avoid TCP\_USER\_TIMEOUT warning when explicitly specifying a 
non-epoll channel type to use 
([#&#8203;11564](https://redirect.github.com/grpc/grpc-java/issues/11564)) 
([`62f4098`](https://redirect.github.com/grpc/grpc-java/commit/62f409810))
   - okhttp: Don't warn about missing Conscrypt 
([`6f35422`](https://redirect.github.com/grpc/grpc-java/commit/6f3542297)). 
This is especially helpful when using TLS but not running on Android
   - android: For `UdsChannelBuilder`, use fake IP instead of localhost 
([`a908b5e`](https://redirect.github.com/grpc/grpc-java/commit/a908b5e40)). 
This avoids an unnecessary DNS lookup
   - xds: Add xDS node ID in select control plane errors to enable 
cross-referencing with control plane logs when debugging 
([`f3cf7c3`](https://redirect.github.com/grpc/grpc-java/commit/f3cf7c3c7))
   - xds: Enhanced how ADS stream terminations are handled, specifically 
addressing cases where a response has or hasn't been received 
(#&#8203;2e9c3e19f)
   - binder: Update status code documentation for Android 11's package 
visibility rules. 
([#&#8203;11551](https://redirect.github.com/grpc/grpc-java/issues/11551)) 
([`99be6e9`](https://redirect.github.com/grpc/grpc-java/commit/99be6e985))
   - binder: Update binderDied() error description to spell out the 
possibilities for those unfamiliar with Android internals. 
([#&#8203;11628](https://redirect.github.com/grpc/grpc-java/issues/11628)) 
([`46c1b38`](https://redirect.github.com/grpc/grpc-java/commit/46c1b387f))
   - example-gauth: Use application default creds instead of file argument 
([#&#8203;11595](https://redirect.github.com/grpc/grpc-java/issues/11595)) 
([`94a0a0d`](https://redirect.github.com/grpc/grpc-java/commit/94a0a0d1c))
   - opentelemetry: Experimental OpenTelemetry tracing is available. Set the 
`GRPC_EXPERIMENTAL_ENABLE_OTEL_TRACING` environment variable to `true` to 
enable tracing support in `GrpcOpenTelemetry` 
([#&#8203;11409](https://redirect.github.com/grpc/grpc-java/issues/11409), 
[#&#8203;11477](https://redirect.github.com/grpc/grpc-java/issues/11477))([`043ba55`](https://redirect.github.com/grpc/grpc-java/commit/043ba55),
 [`421e237`](https://redirect.github.com/grpc/grpc-java/commit/421e237))
   
   ##### Dependencies
   
   - Updated protobuf-java to 3.25.5. This helps avoid CVE-2024-7254 
([`2ff837a`](https://redirect.github.com/grpc/grpc-java/commit/2ff837ab6))
   
   Thanks to:\
   [@&#8203;Juneezee](https://redirect.github.com/Juneezee)\
   [@&#8203;lgalfaso](https://redirect.github.com/lgalfaso)\
   [@&#8203;bestbeforetoday](https://redirect.github.com/bestbeforetoday)\
   [@&#8203;hlx502](https://redirect.github.com/hlx502)\
   [@&#8203;JoeCqupt](https://redirect.github.com/JoeCqupt)
   
   ### 
[`v1.68.0`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.68.0): 
MISTAKE
   
   This was supposed to be v1.67.0, but there was a mistake during the release 
process. This has everything in v1.67.1, *except* for:
   
   - xds: Fix NullPointerException introduced in "Fix load reporting when pick 
first is used for locality-routing" 
([#&#8203;11553](https://redirect.github.com/grpc/grpc-java/pull/11553))
   
   ### 
[`v1.67.1`](https://redirect.github.com/grpc/grpc-java/releases/tag/v1.67.1)
   
   ##### gRPC Java 1.67.1 Release Notes
   
   There was no 1.67.0 release. There was a problem making the release and it 
went to Maven Central as 1.68.0 instead. This is a version-corrected release.
   
   ##### Improvements
   
   - Petiole load balancing policies (e.g., round\_robin, 
weighted\_round\_robin, ring\_hash, least\_request) had internal refactorings. 
This should not have changed their behavior
   - api: Introduce onResult2 in NameResolver Listener2 that returns Status 
([`90d0fab`](https://redirect.github.com/grpc/grpc-java/commit/90d0fabb1))
   - core: touch() buffer when detach()ing 
([`e821d5e`](https://redirect.github.com/grpc/grpc-java/commit/e821d5e15)). 
This makes it clearer whether a leak is a gRPC leak or an application leak when 
the Detachable API is being used
   - example: delete duplicate and unused code in KeepAliveClient.java 
([`6a9bc3b`](https://redirect.github.com/grpc/grpc-java/commit/6a9bc3ba1))
   - example: Added Dualstack example 
([#&#8203;11451](https://redirect.github.com/grpc/grpc-java/issues/11451)) 
([`72a977b`](https://redirect.github.com/grpc/grpc-java/commit/72a977bf7))
   - stub: Add newAttachMetadataServerInterceptor() MetadataUtil 
([#&#8203;11458](https://redirect.github.com/grpc/grpc-java/issues/11458)) 
([`6dbd1b9`](https://redirect.github.com/grpc/grpc-java/commit/6dbd1b9d5))
   - xds: Separate xds clients for each channel target, each with its own 
connection to an xds server. 
([#&#8203;11484](https://redirect.github.com/grpc/grpc-java/issues/11484)) 
([`d034a56`](https://redirect.github.com/grpc/grpc-java/commit/d034a56cb))
   - xds: Envoy proto sync to 2024-07-06 (
   
   </details>
   
   ---
   
   ### Configuration
   
   📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (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/solrbot/renovate-github-action)
   
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS44Mi4xMCIsInVwZGF0ZWRJblZlciI6IjQxLjgyLjEwIiwidGFyZ2V0QnJhbmNoIjoiYnJhbmNoXzl4IiwibGFiZWxzIjpbImV4ZW1wdC1zdGFsZSJdfQ==-->
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to