The v1.68.1 release <https://github.com/grpc/grpc-java/releases/tag/v1.68.1> is now available.
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" (#11553 <https://github.com/grpc/grpc-java/pull/11553>). This was in 1.67.1 but not 1.68.0 Behavior Changes - core: JSON parsing rejects duplicate keys in objects (#11575 <https://github.com/grpc/grpc-java/pull/11575>) (4be69e3 <https://github.com/grpc/grpc-java/commit/4be69e3f8a9c70ec36234d6373c9854eab6e9027>). 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 (#11503 <https://github.com/grpc/grpc-java/pull/11503>) (3a6be9c <https://github.com/grpc/grpc-java/commit/3a6be9ca1e9c8efed109b97546730852b2ab134b>). 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://github.com/grpc/grpc-java/commit/84d30afad6fb966ab9b59fff0b381cc57129d958> ) Improvements - New grpc-context-override-opentelemetry artifact (#11523 <https://github.com/grpc/grpc-java/pull/11523>) (782a44a <https://github.com/grpc/grpc-java/commit/782a44ad62f84d19291b0771b56b431e6e723752>) (#11599 <https://github.com/grpc/grpc-java/pull/11599>) (e59ae5f <https://github.com/grpc/grpc-java/commit/e59ae5fad0efa8702260790eb74c76643a8e4018>). 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 (#11330 <https://github.com/grpc/grpc-java/pull/11330>) (1ded8af <https://github.com/grpc/grpc-java/commit/1ded8aff814d4064902337f264acec8b5cde419c> ) - core: Handle NameResolver/LoadBalancer exceptions when panicking ( b692b9d <https://github.com/grpc/grpc-java/commit/b692b9d26ebd5fc9df711ce9412bba8956b07969>). 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 (#11577 <https://github.com/grpc/grpc-java/pull/11577>) (fa26a8b <https://github.com/grpc/grpc-java/commit/fa26a8bc5e8f5f465e1d55de922be1b6b936f47f> ) - core: StreamTracer.inboundMessageRead() now reports uncompressed message size when the message does not need compression (#11598 <https://github.com/grpc/grpc-java/pull/11598>) (2aae68e <https://github.com/grpc/grpc-java/commit/2aae68e11726e35576d78f8e568f9e389ed330bc>). Previously it always reported -1 (unknown) - netty: Avoid TCP_USER_TIMEOUT warning when explicitly specifying a non-epoll channel type to use (#11564 <https://github.com/grpc/grpc-java/pull/11564>) (62f4098 <https://github.com/grpc/grpc-java/commit/62f409810d48bbae9fdd111217e7b2b85d377e60> ) - okhttp: Don't warn about missing Conscrypt (6f35422 <https://github.com/grpc/grpc-java/commit/6f3542297c2fb46a38cab65d510fc2ce76200045>). This is especially helpful when using TLS but not running on Android - android: For UdsChannelBuilder, use fake IP instead of localhost ( a908b5e <https://github.com/grpc/grpc-java/commit/a908b5e40db86c533a9f3245d14c15fdecf30378>). 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://github.com/grpc/grpc-java/commit/f3cf7c3c75a2dd80b5e852b42efb6dc41e0d073a> ) - xds: Enhanced how ADS stream terminations are handled, specifically addressing cases where a response has or hasn't been received (#2e9c3e19f) - binder: Update status code documentation for Android 11's package visibility rules. (#11551 <https://github.com/grpc/grpc-java/pull/11551>) (99be6e9 <https://github.com/grpc/grpc-java/commit/99be6e9852817fa5b85e0634984020d766e50d1f> ) - binder: Update binderDied() error description to spell out the possibilities for those unfamiliar with Android internals. (#11628 <https://github.com/grpc/grpc-java/pull/11628>) (46c1b38 <https://github.com/grpc/grpc-java/commit/46c1b387fa547038dbfb2f6ecd236ed3e4b757e3> ) - example-gauth: Use application default creds instead of file argument ( #11595 <https://github.com/grpc/grpc-java/pull/11595>) (94a0a0d <https://github.com/grpc/grpc-java/commit/94a0a0d1c7af25aaf46f6f36353afc16e45f6b2b> ) - opentelemetry: Experimental OpenTelemetry tracing is available. Set the GRPC_EXPERIMENTAL_ENABLE_OTEL_TRACING environment variable to true to enable tracing support in GrpcOpenTelemetry (#11409 <https://github.com/grpc/grpc-java/pull/11409>, #11477 <https://github.com/grpc/grpc-java/pull/11477>)(043ba55 <https://github.com/grpc/grpc-java/commit/043ba556b89eb7b700c825bb09bed6e7fb038608>, 421e237 <https://github.com/grpc/grpc-java/commit/421e2371e9136a768fa878318af4a96b4d11f784> ) Dependencies - Updated protobuf-java to 3.25.5. This helps avoid CVE-2024-7254 <https://github.com/advisories/GHSA-735f-pc8j-v9w8> (2ff837a <https://github.com/grpc/grpc-java/commit/2ff837ab6007baf41c75a04dc31bcdbb96fa1a3c> ) Thanks to: @Juneezee <https://github.com/Juneezee> @lgalfaso <https://github.com/lgalfaso> @bestbeforetoday <https://github.com/bestbeforetoday> @hlx502 <https://github.com/hlx502> @JoeCqupt <https://github.com/JoeCqupt> -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/grpc-io/CA%2B4M1oM-kmGrOZkiMytj3w47LFOJ7iKcq2rmTtrZ7D9UfkXYfA%40mail.gmail.com.