Skip to content

Releases: grpc/grpc-java

v1.75.0

21 Aug 13:15
Compare
Choose a tag to compare

Behavior Changes

  • binder: Introduce server pre-authorization (#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) (6dfa03c). 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). 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). You should no longer see “Connection timeout for priority” errors.

Improvements

  • netty: Count sent RST_STREAMs against NettyServerBuilder.maxRstFramesPerWindow() limit (#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). 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) (9193701). Client channel and server builders with interceptors and factories respectively for stats and tracing.

  • stub: simplify BlockingClientCall infinite blocking (#12217) (ba0a732). 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) (42e1829). 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) (7e982e4). 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) (8021727)

  • xds: xdsClient cache transient error for new watchers (#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). 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). ControlPlaneClient uses "xds-cp-client" now instead of "xds-client" while logging.

Dependencies Changes

  • Upgrade to Netty 4.1.124.Final (#12286). This implicitly disables NettyAdaptiveCumulator (#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) (8f09b96). 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). 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) (d352540)

Thanks to

@benjaminp
@werkt
@kilink
@vimanikag

v1.74.0

28 Jul 23:13
Compare
Choose a tag to compare

Behavior Changes

  • compiler: Default to @generated=omit (f8700a1). 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) (a16d655). 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, 15c7573). 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) (1c43098). Previously, changes in the wall time would impact its accounting
  • xds: Don't allow hostnames in address field in EDS (#12123) (482dc5c). 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) (efe9ccc). 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). 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). 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). 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) (26bd0ee). 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) (6f69363). This adds compatibility for --incompatible_disable_target_default_provider_fields
  • binder: Rationalize @ThreadSafe-ty inside BinderTransport (#12130) (c206428)
  • binder: Cancel checkAuthorization() request if still pending upon termination (#12167) (30d40a6)

Dependencies

  • compiler: Upgrade Protobuf C++ to 22.5 (#11961) (46485c8). 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) (f99b2aa). We aren’t aware of any visible changes to the results on Maven Central

V1.73.0

03 Jun 06:18
Compare
Choose a tag to compare

API Changes

xds: Enable least request by default (#12062)
core: Delete the long-deprecated GRPC_PROXY_EXP env variable (#11988) (908f9f1). 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). This API was replaced by LoadBalancer.requestConnection() in v1.22.0

Bug Fixes

config: prevents global stats config freeze in ConfiguratorRegistry.getConfigurators() (#11991) (d4c46a7)
xds: XdsDepManager should ignore updates after shutdown (25199e9). 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) (c8d1e6e)
xds: add the missing xds.authority metric defined in gRFC A78 (#12018) (6cd007d)

New Features

xds: float LRU cache across interceptors (#11992) (7a08fdb)
xds: propagate audience from cluster resource in gcp auth filter. This completes the gRFC A83, implementation of GCP Authentication Filter. (#11972) (84c7713)
opentelemetry: Implement grpc.lb.backend_service optional label (9619453). This completes the gRFC A89 implementation, which is enabled when requesting the new label

Documentation

api: Remove mention of "epoch" from Ticker.nanoTime() javadocs (84bd014)

V1.72.0

17 Apr 05:39
Compare
Choose a tag to compare

API Changes

  • util: Remove deprecated method GracefulSwitchLb.switchTo() (f207be3). 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) (1958e42)
  • xds: Explicitly set request hash key for the ring hash LB policy (892144d)

Bug Fixes

  • core: Apply ManagedChannelImpl's updateBalancingState() immediately (ca4819a)
  • xds: Fix cluster selection races when updating config selector (d82613a)
  • otel: Fix span names as per the A72 gRFC changes (#11974) (94f8e93)
  • xds: ClusterResolverLoadBalancer handle update for both resolved addresses and errors via ResolutionResult (#11997) (8681786)

Improvements

  • netty: Avoid allocating an exception on transport shutdown. This reduces allocation rate for connection-heavy workloads/load testing (a57c14a)
  • servlet: Set an explicit description for CANCELLED status (#11927) (fca1d3c)
  • xds: gRFC A74 xDS Config Tears implementation in the XdsNameResolver (e80c197). 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). 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). 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) (7507a9e)
  • core: Avoid cancellation exceptions when notifying watchers that already have their connections cancelled (#11934) (350f90e)
  • 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) (c340f4a)
  • xds: avoid unnecessary dns lookup for CIDR addresses (#11932) (602aece)
  • netty: Swap to UniformStreamByteDistributor (#11954) (2f52a00). 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) (666136b)
  • stub: trailersFromThrowable() metadata should be copied (#11979) (a6e1c1f)

New Features

  • xds: xDS-based HTTP CONNECT configuration (#11861) (1219706)
  • 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) (cdab410)

Thanks to

@panchenko
@emmanuel-ferdman
@JoeCqupt

V1.71.0

05 Mar 17:15
Compare
Choose a tag to compare

API Changes

  • xds: Enable Xds Client Fallback by default. This allows having a backup xDS server as described in gRFC A71-xds-fallback.md (#11817) (176f3ee)
  • protobuf: Experimental API marshallerWithRecursionLimit in ProtoUtils is now stabilized (#11884) (90b1c4f)

Bug Fixes

  • xds: Cluster weights should be uint32 (199a7ea). 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). 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)

Improvements

  • Replace jsr305's CheckReturnValue with Error Prone's (#11811) (7b5d069)
  • core: optimize number of buffer allocations for message sizes larger than 1 MB (#11879) (5a7f350)
  • core: Update the retry backoff range from [0, 1] to [0.8, 1.2] as per the A6 redefinition (#11858) (44e92e2)
  • core: include last pick status in status message when wait-for-ready RPC’s deadline expires (#11851) (7585b16). 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) (0f5503e)
  • 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, 7153ff8)
  • core: When ClientStreamObserver closes the response observer log the error message if this operation fails (#11880) (302342c)
  • bom: use gradle java-platform to build pom instead of custom xml generation (#11875) (3142928)
  • xds: Reuse filter interceptors on client-side across RPCs (c506190, b3db8c2). This was an internal refactor that should have no user-visible change
  • alts: Enhance AltsContextUtil to allow getting the AltsContext on client-side (b1bc0a9)
  • xds: Envoy proto sync to 2024-11-11 (#11816) (b44ebce)

Documentation

  • examples: Update HelloWorldServer to use Executor (#11850) (16edf7a)
  • examples: Add README for all examples lacking it (#11676) (9e86299)

Dependencies

Thanks to

@benjamin
@panchenko
@harshagoo94
@NaveenPrasannaV

v1.70.0

24 Jan 06:08
Compare
Choose a tag to compare

Bug Fixes

  • Re-enable animalsniffer, fixing most violations (8ea3629). 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 (#11072) (ebe2b48). 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 (#11749) (a0982ca). 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 and the AOSP fix
  • okhttp: Fix for ipv6 link local with scope (#11725) (65b32e6)
  • xds: Preserve nonce when unsubscribing last watcher of a particular type so that new discovery requests of that type are handled correctly (1cf1927). This (along with 6c12c2b) 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)
  • xds: Unexpected types in the bootstrap’s server_features should be ignored (e8ff6da). They were previously required to be strings
  • xds: Remove xds authority label from metric registration (#11760) (6516c73). 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 (#11735) (f8f6139). This fixes clients treating large max_requests as “no requests” and failing all requests

Improvements

  • api: Introduce custom NameResolver.Args (#11669) (0b2d440)
  • stub: Introduce new API: BlockingStubV2 which supports Bidi streaming, Client streaming, a cleaner Server streaming and Unary RPCs (#10318) (ea8c31c)
  • bazel: Remove workaround for DoNotCall fixed in Bazel 3.4 (805cad3)
  • binder: A standard API for pointing resolvers at a different Android User. (#11775) (1126a8e)
  • xds: Fix XDS control plane client retry timer backoff duration when connection closes after results are received (#11766) (ef7c2d5)
  • xds: Parsing xDS Cluster Metadata (#11741) (1edc4d8). 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 (#11715) (ebb43a6). 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). This only matters when debug logging is enabled

Documentation

  • examples: Simplify graceful shutdown in Hostname example (f1109e4)
  • examples: Remove references to maven-central.storage-download.googleapis.com (c96e926)
  • examples: Updated the attachHeaders to newAttachHeadersInterceptor in HeaderClientInterceptor (#11759) (5e8abc6)

Dependencies

  • Bazel 8 is released, so replace Bazel 6 testing with Bazel 7 (8a5f777)

Thanks to

v1.69.1

17 Jan 20:03
Compare
Choose a tag to compare

Bug Fixes

  • okhttp: Improve certificate handling by rejecting non-ASCII subject alternative names and hostnames as seen in CVE-2021-0341 (#11749) (a0982ca). 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 and the AOSP fix
  • xds: Preserve nonce when unsubscribing last watcher of a particular type so that new discovery requests of that type are handled correctly (1cf1927). This (along with 6c12c2b) 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)
  • xds: Unexpected types in the bootstrap’s server_features should be ignored (e8ff6da). They were previously required to be strings
  • xds: Fixed unsupported unsigned 32 bits issue for circuit breaker (#11735) (f8f6139). This fixes clients treating large max_requests as “no requests” and failing all requests
  • xds: Remove xds authority label from metric registration (#11760) (6516c73). This fixes the error “Incorrect number of required labels provided. Expected: 4” introduced in 1.69.0

v1.68.3

17 Jan 20:00
Compare
Choose a tag to compare

Bug Fixes

  • okhttp: Improve certificate handling by rejecting non-ASCII subject alternative names and hostnames as seen in CVE-2021-0341 (#11749) (a0982ca). 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 and the AOSP fix
  • xds: Preserve nonce when unsubscribing last watcher of a particular type so that new discovery requests of that type are handled correctly (1cf1927). This (along with 6c12c2b) 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)
  • xds: Unexpected types in the bootstrap’s server_features should be ignored (e8ff6da). They were previously required to be strings
  • xds: Fixed unsupported unsigned 32 bits issue for circuit breaker (#11735) (f8f6139). This fixes clients treating large max_requests as “no requests” and failing all requests

v1.69.0

11 Dec 16:04
Compare
Choose a tag to compare

v1.69.0

New Features

  • api: Allow LoadBalancers to specify an authority per-RPC.(#11631) (c167ead) CallOptions.withAuthority() has higher precedence.
  • netty: Add soft Metadata size limit enforcement. (#11603) (735b3f3) 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 (#11634) (ba8ab79)
  • xds: Add grpc.xds_client metrics, as documented by OpenTelemetry Metrics (#11661) (20d09ce). grpc.xds.authority is not yet available

Bug Fixes

  • api: When forwarding from Listener onAddresses to Listener2 continue to use onResult (#11666) (dae078c). This fixes a 1.68.1 "IllegalStateException: Not called from the SynchronizationContext" regression (#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). 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 (#11562) (766b923)
  • core: Make timestamp usage in Channelz use nanos from Java.time.Instant when available (#11604) (9176b55). This increases the timestamp precision from milliseconds
  • okhttp: Fix for ipv6 link local with scope (#11725) (e98e7445b)
  • binder: Let AndroidComponentAddress specify a target UserHandle (#11670) (e58c998)
  • servlet: Deframe failures should be logged on the server as warnings (#11645) (a5db67d)
  • s2a: Rename the Bazel target s2av2_credentials to s2a (29dd9ba). 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 (#11685) (b170334). This compatibility is on the source level. There is not a pre-built binary on Maven Central that supports proto lite
  • services: Deprecate ProtoReflectionService (#11681) (921f88a). 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)
  • Upgrade google-auth-library to 1.24.1 (1993e68)
  • Upgrade error_prone_annotations to 2.30.0 (1993e68)
  • Upgrade Guava to 33.3.1-android (1993e68)
  • Upgrade opentelemetry-api to 1.43.0 (1993e68)
  • xds: Remove Bazel dependency on xds v2 (664f1fc). 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. (#11639) (fe350cf)
  • examples: Use xds-enabled server and xds credentials in example-gcp-csm-observability (#11706) (a79982c)

Thanks to
@niloc132
@rockspore
@SreeramdasLavanya
@vinodhabib

v1.68.2

28 Nov 02:49
Compare
Choose a tag to compare

Bug Fixes

  • api: When forwarding from Listener onAddresses to Listener2 continue to use onResult (#11688). This fixes a 1.68.1 "IllegalStateException: Not called from the SynchronizationContext" regression (#11662) that could be seen in certain custom NameResolvers
  • okhttp: If the frame handler thread is null do not schedule it on the executor (#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 (#11707)