Skip to content

Update grpc#31

Draft
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/grpc
Draft

Update grpc#31
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/grpc

Conversation

@renovate

@renovate renovate Bot commented Sep 3, 2025

Copy link
Copy Markdown

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence Type Update
google.golang.org/grpc v1.74.2v1.81.1 age confidence require minor
grpc 1.74.11.81.1 age confidence bazel_dep minor
io.grpc:grpc-api 1.74.01.82.0 age confidence minor
io.grpc:grpc-netty 1.74.01.82.0 age confidence minor
io.grpc:grpc-protobuf 1.74.01.82.0 age confidence minor
io.grpc:grpc-stub 1.74.01.82.0 age confidence minor
io.grpc:protoc-gen-grpc-java 1.74.01.82.0 age confidence windows-x86_64 minor
io.grpc:protoc-gen-grpc-java 1.74.01.82.0 age confidence linux-x86_64 minor
io.grpc:protoc-gen-grpc-java 1.74.01.82.0 age confidence linux-arm64 minor
io.grpc:protoc-gen-grpc-java 1.74.01.82.0 age confidence darwin-x86_64 minor
io.grpc:protoc-gen-grpc-java 1.74.01.82.0 age confidence darwin-arm64 minor

Caution

This PR is marked as draft, as some updates cannot be made automatically (e.g. grpc-java protoc plugin)


Release Notes

grpc/grpc-go (google.golang.org/grpc)

v1.81.1: Release 1.81.1

Compare Source

Security

  • xds/rbac: Fix a potential authorization bypass caused by incorrectly falling through URI/DNS SANs to Subject Distinguished Name (DN) when matching the authenticated principal name. With this fix, only the first non-empty identity source will be used, as per gRFC A41. (#​9111)

v1.81.0: Release 1.81.0

Compare Source

Behavior Changes

  • balancer/rls: Switch gauge metrics to asynchronous emission (once per collection cycle) to reduce telemetry noise and align with other gRPC language implementations. (#​8808)

Dependencies

  • Minimum supported Go version is now 1.25. (#​8969)

Bug Fixes

  • xds: Use the leaf cluster's security config for the TLS handshake instead of the aggregate cluster's config. (#​8956)
  • transport: Send a RST_STREAM when receiving an END_STREAM when the stream is not already half-closed. (#​8832)
  • xds: Fix ADS resource name validation to prevent a panic. (#​8970)

New Features

  • grpc/stats: Add support for custom labels in per-call metrics (gRFC A108). (#​9008)
  • xds: Add support for Server Name Indication (SNI) and SAN validation (gRFC A101). Disabled by default. To enable, set GRPC_EXPERIMENTAL_XDS_SNI=true environment variable. (#​9016)
  • xds: Add support to control which fields get propagated from ORCA backend metric reports to LRS load reports (gRFC A85). Disabled by default. To enable, set GRPC_EXPERIMENTAL_XDS_ORCA_LRS_PROPAGATION=true. (#​9005)
  • xds: Add metrics to track xDS client connectivity and cached resource state (gRFC A78). (#​8807)
  • stats/otel: Enhance grpc.subchannel.disconnections metric by adding disconnection reason to the grpc.disconnect_error label (gRFC A94). This provides granular insights into why subchannels are closing. (#​8973)
  • mem: Add mem.Buffer.Slice() API to slice the buffer like a slice. (#​8977)

Performance Improvements

  • alts: Pool read buffers to lower memory utilization when sockets are unreadable. (#​8964)
  • transport: Pool HTTP/2 framer read buffers to reduce idle memory consumption. Currently limited to Linux for ALTS and non-encrypted transports (TCP, Unix). To disable, set GRPC_GO_EXPERIMENTAL_HTTP_FRAMER_READ_BUFFER_POOLING=false and report any issues. (#​9032)

v1.80.0

Compare Source

v1.79.3: Release 1.79.3

Compare Source

Security

  • server: fix an authorization bypass where malformed :path headers (missing the leading slash) could bypass path-based restricted "deny" rules in interceptors like grpc/authz. Any request with a non-canonical path is now immediately rejected with an Unimplemented error. (#​8981)

v1.79.2: Release 1.79.2

Compare Source

Bug Fixes

  • stats: Prevent redundant error logging in health/ORCA producers by skipping stats/tracing processing when no stats handler is configured. (#​8874)

v1.79.1: Release 1.79.1

Compare Source

Bug Fixes

  • grpc: Remove the -dev suffix from the User-Agent header. (#​8902)

v1.79.0: Release 1.79.0

Compare Source

API Changes

  • mem: Add experimental API SetDefaultBufferPool to change the default buffer pool. (#​8806)
  • experimental/stats: Update MetricsRecorder to require embedding the new UnimplementedMetricsRecorder (a no-op struct) in all implementations for forward compatibility. (#​8780)

Behavior Changes

  • balancer/weightedtarget: Remove handling of Addresses and only handle Endpoints in resolver updates. (#​8841)

New Features

  • experimental/stats: Add support for asynchronous gauge metrics through the new AsyncMetricReporter and RegisterAsyncReporter APIs. (#​8780)
  • pickfirst: Add support for weighted random shuffling of endpoints, as described in gRFC A113.
    • This is enabled by default, and can be turned off using the environment variable GRPC_EXPERIMENTAL_PF_WEIGHTED_SHUFFLING. (#​8864)
  • xds: Implement :authority rewriting, as specified in gRFC A81. (#​8779)
  • balancer/randomsubsetting: Implement the random_subsetting LB policy, as specified in gRFC A68. (#​8650)
  • server: Include status detail headers, if available, when terminating a stream during request header processing. (#​8754)

Bug Fixes

  • credentials/tls: Fix a bug where the port was not stripped from the authority override before validation. (#​8726)
  • xds/priority: Fix a bug causing delayed failover to lower-priority clusters when a higher-priority cluster is stuck in CONNECTING state. (#​8813)
  • health: Fix a bug where health checks failed for clients using legacy compression options (WithDecompressor or RPCDecompressor). (#​8765)
  • transport: Fix an issue where the HTTP/2 server could skip header size checks when terminating a stream early. (#​8769)

Performance Improvements

  • credentials/alts: Optimize read buffer alignment to reduce copies. (#​8791)
  • mem: Optimize pooling and creation of buffer objects. (#​8784)
  • transport: Reduce slice re-allocations by reserving slice capacity. (#​8797)

v1.78.0: Release 1.78.0

Compare Source

Behavior Changes
  • client: Reject target URLs containing unbracketed colons in the hostname in Go version 1.26+. (#​8716)
New Features
  • stats/otel: Add backend service label to wrr metrics as part of A89. (#​8737)
  • stats/otel: Add subchannel metrics (without the disconnection reason) to eventually replace the pickfirst metrics. (#​8738)
  • client: Wait for all pending goroutines to complete when closing a graceful switch balancer. (#​8746)
Bug Fixes
  • transport/client : Return status code Unknown on malformed grpc-status. (#​8735)
  • client: Add experimental.AcceptCompressors so callers can restrict the grpc-accept-encoding header advertised for a call. (#​8718)
  • xds: Fix a bug in StringMatcher where regexes would match incorrectly when ignore_case is set to true. (#​8723)
  • xds/resolver:
    • Drop previous route resources and report an error when no matching virtual host is found.
    • Only log LDS/RDS configuration errors following a successful update and retain the last valid resource to prevent transient failures. (#​8711)
  • client:
    • Change connectivity state to CONNECTING when creating the name resolver (as part of exiting IDLE).
    • Change connectivity state to TRANSIENT_FAILURE if name resolver creation fails (as part of exiting IDLE).
    • Change connectivity state to IDLE after idle timeout expires even when current state is TRANSIENT_FAILURE.
    • Fix a bug that resulted in OnFinish call option not being invoked for RPCs where stream creation failed. (#​8710)
  • xdsclient: Fix a race in the xdsClient that could lead to resource-not-found errors. (#​8627)
Performance Improvements
  • mem: Round up to nearest 4KiB for pool allocations larger than 1MiB. (#​8705)

v1.77.0: Release 1.77.0

Compare Source

API Changes

  • mem: Replace the Reader interface with a struct for better performance and maintainability. (#​8669)

Behavior Changes

  • balancer/pickfirst: Remove support for the old pick_first LB policy via the environment variable GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST=false. The new pick_first has been the default since v1.71.0. (#​8672)

Bug Fixes

  • xdsclient: Fix a race condition in the ADS stream implementation that could result in resource-not-found errors, causing the gRPC client channel to move to TransientFailure. (#​8605)
  • client: Ignore HTTP status header for gRPC streams. (#​8548)
  • client: Set a read deadline when closing a transport to prevent it from blocking indefinitely on a broken connection. (#​8534)
  • client: Fix a bug where default port 443 was not automatically added to addresses without a specified port when sent to a proxy.
    • Setting environment variable GRPC_EXPERIMENTAL_ENABLE_DEFAULT_PORT_FOR_PROXY_TARGET=false disables this change; please file a bug if any problems are encountered as we will remove this option soon. (#​8613)
  • balancer/pickfirst: Fix a bug where duplicate addresses were not being ignored as intended. (#​8611)
  • server: Fix a bug that caused overcounting of channelz metrics for successful and failed streams. (#​8573)
  • balancer/pickfirst: When configured, shuffle addresses in resolver updates that lack endpoints. Since gRPC automatically adds endpoints to resolver updates, this bug only affects custom LB policies that delegate to pick_first but don't set endpoints. (#​8610)
  • mem: Clear large buffers before re-using. (#​8670)

Performance Improvements

New Features

  • outlierdetection: Add metrics specified in gRFC A91. (#​8644)
  • stats/opentelemetry: Add support for optional label grpc.lb.backend_service in per-call metrics (#​8637)
  • xds: Add support for JWT Call Credentials as specified in gRFC A97. Set environment variable GRPC_EXPERIMENTAL_XDS_BOOTSTRAP_CALL_CREDS=true to enable this feature. (#​8536)
  • experimental/stats: Add support for up/down counters. (#​8581)

v1.76.0: Release 1.76.0

Compare Source

Dependencies

Bug Fixes

  • client: Return status INTERNAL when a server sends zero response messages for a unary or client-streaming RPC. (#​8523)
  • client: Fail RPCs with status INTERNAL instead of UNKNOWN upon receiving http headers with status 1xx and END_STREAM flag set. (#​8518)
  • pick_first: Fix race condition that could cause pick_first to get stuck in IDLE state on backend address change. (#​8615)

New Features

  • credentials: Add credentials/jwt package providing file-based JWT PerRPCCredentials (A97). (#​8431)

Performance Improvements

  • client: Improve HTTP/2 header size estimate to reduce re-allocations. (#​8547)
  • encoding/proto: Avoid redundant message size calculation when marshaling. (#​8569)

v1.75.1: Release 1.75.1

Compare Source

Bug Fixes

  • transport: Fix a data race while copying headers for stats handlers in the std lib http2 server transport. (#​8519)
  • xdsclient:
    • Fix a data race caused while reporting load to LRS. (#​8483)
    • Fix regression preventing empty node IDs when creating an LRS client. (#​8483)
  • server: Fix a regression preventing streams from being cancelled or timed out when blocked on flow control. (#​8528)

v1.75.0: Release 1.75.0

Compare Source

Behavior Changes

  • xds: Remove support for GRPC_EXPERIMENTAL_XDS_FALLBACK environment variable. Fallback support can no longer be disabled. (#​8482)
  • stats: Introduce DelayedPickComplete event, a type alias of PickerUpdated. (#​8465)
    • This (combined) event will now be emitted only once per call, when a transport is successfully selected for the attempt.
    • OpenTelemetry metrics will no longer have multiple "Delayed LB pick complete" events in Go, matching other gRPC languages.
    • A future release will delete the PickerUpdated symbol.
  • credentials: Properly apply grpc.WithAuthority as the highest-priority option for setting authority, above the setting in the credentials themselves. (#​8488)
    • Now that this WithAuthority is available, the credentials should not be used to override the authority.
  • round_robin: Randomize the order in which addresses are connected to in order to spread out initial RPC load between clients. (#​8438)
  • server: Return status code INTERNAL when a client sends more than one request in unary and server streaming RPC. (#​8385)
    • This is a behavior change but also a bug fix to bring gRPC-Go in line with the gRPC spec.

New Features

  • dns: Add an environment variable (GRPC_ENABLE_TXT_SERVICE_CONFIG) to provide a way to disable TXT lookups in the DNS resolver (by setting it to false). By default, TXT lookups are enabled, as they were previously. (#​8377)

Bug Fixes

  • xds: Fix regression preventing empty node IDs in xDS bootstrap configuration. (#​8476)
  • xds: Fix possible panic when certain invalid resources are encountered. (#​8412)
  • xdsclient: Fix a rare panic caused by processing a response from a closed server. (#​8389)
  • stats: Fix metric unit formatting by enclosing non-standard units like call and endpoint in curly braces to comply with UCUM and gRPC OpenTelemetry guidelines. (#​8481)
  • xds: Fix possible panic when clusters are removed from the xds configuration. (#​8428)
  • xdsclient: Fix a race causing "resource doesn not exist" when rapidly subscribing and unsubscribing to the same resource. (#​8369)
  • client: When determining the authority, properly percent-encode (if needed, which is unlikely) when the target string omits the hostname and only specifies a port (grpc.NewClient(":<port-number-or-name>")). (#​8488)

v1.74.3: Release 1.74.3

Compare Source

Bug Fixes

  • xds: Fix a regression preventing empty node IDs in the bootstrap configuration. (#​8476 , #​8483)
  • xdsclient: Fix a data race caused while reporting load to LRS. (#​8483)
  • server: Fix a regression preventing streams from being cancelled or timed out when blocked on flow control. (#​8528)
grpc/grpc (grpc)

v1.81.1

This is release 1.81.0 (graphic) of gRPC Core.

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes, with highlights listed below.

Core

  • [EventEngine] Fix a potential use-after-free error on Windows. (#​42078)
  • [ssl] Server side handshaker factory stores a map of key signers. (#​42002)
  • [Core] Fix completion queue shutdown race on weak memory models (ARM). (#​41510)
  • [EventEngine] Fix a Windows race that causes an assertion error. (#​41563)
  • [grpc_error] enable error_flatten experiment in OSS. (#​41471)
  • [Python] Trim Python2 backward compatiblity syntax - removed (object) inheritance. (#​41708)

Objective-C

  • [ObjC] Add receiveNextMessage to GRPCUnaryProtoCall. (#​42260)

Python

  • [Python] Add typing_extensions dep to aio Bazel target. (#​42001)
  • [Python] [Pyright] Part 1 - Pyright for src/python/grpcio/grpc/aio/_base_server.py. (#​42240)
  • [Python] Drop 3.9. (#​42145)
  • [Python] grpc-status: Relax protobuf dependency upper bound to allow 7.x. (#​41948)
  • [Python] [Typeguard] Part 5 - Add Typeguard SYNC Stack in tests. (#​40278)
  • [Python] Remove GIL from ReceiveMessageOperation.un_c method. (#​41812)
  • [Python] Support observability in AsyncIO stack. (#​41573)

Ruby

  • [Ruby] Drop support for EOL Ruby 3.1 and clean up. (#​41435)
  • [Ruby] Composed CallCredentials keep a reference to their source. (#​41782)

v1.81.0

This is release 1.81.0 (graphic) of gRPC Core.

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes, with highlights listed below.

Core

  • [EventEngine] Fix a potential use-after-free error on Windows. (#​42078)
  • [ssl] Server side handshaker factory stores a map of key signers. (#​42002)
  • [Core] Fix completion queue shutdown race on weak memory models (ARM). (#​41510)
  • [EventEngine] Fix a Windows race that causes an assertion error. (#​41563)
  • [grpc_error] enable error_flatten experiment in OSS. (#​41471)
  • [Python] Trim Python2 backward compatiblity syntax - removed (object) inheritance. (#​41708)

Objective-C

  • [ObjC] Add receiveNextMessage to GRPCUnaryProtoCall. (#​42260)

Python

  • [Python] Add typing_extensions dep to aio Bazel target. (#​42001)
  • [Python] [Pyright] Part 1 - Pyright for src/python/grpcio/grpc/aio/_base_server.py. (#​42240)
  • [Python] Drop 3.9. (#​42145)
  • [Python] grpc-status: Relax protobuf dependency upper bound to allow 7.x. (#​41948)
  • [Python] [Typeguard] Part 5 - Add Typeguard SYNC Stack in tests. (#​40278)
  • [Python] Remove GIL from ReceiveMessageOperation.un_c method. (#​41812)
  • [Python] Support observability in AsyncIO stack. (#​41573)

Ruby

  • [Ruby] Drop support for EOL Ruby 3.1 and clean up. (#​41435)
  • [Ruby] Composed CallCredentials keep a reference to their source. (#​41782)

v1.80.0

This is release 1.80.0 (glimmering) of gRPC Core.

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes, with highlights listed below.

Core

  • [ssl] Implement TLS private key signer in Python. (#​41701)
  • [TLS Credentials]: Private Key Offload Implementation. (#​41606)
  • Fix max sockaddr struct size on OpenBSD. (#​40454)
  • [core] Enable EventEngine for Python by default, and EventEngine fork support in Python and Ruby. (#​41432)
  • [TLS Credentials]: Create InMemoryCertificateProvider to update certificates independently. (#​41484)
  • [Ruby] Build/test ruby 4.0 and build native gems with Ruby 4.0 support. (#​41324)
  • [EventEngine] Remove an incorrect std::move in DNSServiceResolver constructor. (#​41502)
  • [RR and WRR] enable change to connect from a random index. (#​41472)
  • [xds] Implement gRFC A101. (#​41051)

C++

  • [C++] Add SNI override option to C++ channel credentials options API. (#​41460)

C#

Objective-C

  • [Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (#​41357)

PHP

  • [PHP] Disable php infinite recursion check for callback from Core to PHP. (#​41835)
  • [PHP] Fix runtime error with PHp8.5 alpha because zend_exception_get_defaul…. (#​40337)

Python

  • [Python] Fix GRPC_TRACE not working when absl log initialized in cython. (#​41814)
  • Revert "[Python] Align GRPC_ENABLE_FORK_SUPPORT env defaults in core and python (#​41455)". (#​41769)
  • [Python] Fix AsyncIO Server maximum_concurrent_rpcs enforcement preventing negative active_rpcs count. (#​41532)
  • [Python] Docs: correct grpc.Compression references. (#​41705)
  • [Python] [Typeguard] Part 4 - Add Typeguard to AIO stack in tests . (#​40226)
  • [Python] Fix multi-thread exception for Asyncio gRPC clients - Fixes #​25364. (#​41483)
  • [Python] Resolve absl::InitializeLog warning. (#​39779)
  • [Python] Remove IF usage in Cython. (#​41400)
  • [Python] Add language features to exported proto files. (#​41501)
  • [Python] Fix crash when iterating on AIO Metadata keys(), values(), items() or list(metadata.values()) etc. . (#​41481)
  • [Python] Modernize and revamp Public API Docs. (#​41287)

Ruby

  • [Ruby] Added support to push native-debug packages off rubygems to public gcs bucket. (#​41270)

v1.78.0

This is release 1.78.0 (gutsy) of gRPC Core.

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes, with highlights listed below.

C++

  • adding address_sorting dep in naming test build. (#​41045)

Objective-C

  • [Backport][v1.78.x][Fix][Compiler] Plugins fall back to the edition 2023 for older protobuf. (#​41358)

Python

  • [python] aio: fix race condition causing asyncio.run() to hang forever during the shutdown process. (#​40989)
  • [Python] Migrate to pyproject.toml build system from setup.py builds. (#​40833)
  • [Python] Log error details when ExecuteBatchError occurs (at DEBUG level). (#​40921)
  • [Python] Update setuptools min version to 77.0.1 . (#​40931)

Ruby

  • [ruby] Fix version comparison for the ruby_abi_version symbol for ruby 4 compatibility. (#​41061)

v1.76.0

This is release 1.76.0 (genuine) of gRPC Core.

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes, with highlights listed below.

Core

  • Prioritize system CA over bundled CA. (#​40583)
  • [event_engine] Introduce a event_engine_poller_for_python experiment. (#​40243)
  • [metrics] add grpc.lb.backend_service label. (#​40486)

C#

  • [csharp tools] #​39374 Grpc.Tools can't process file Suffix name with Upper character. (#​40072)

Python

  • [Python] gRPC AsyncIO: Improve CompletionQueue polling performance. (#​39993)

v1.75.1

This is release gRPC Core 1.75.1 (gemini).

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes.

What's Changed

Python
  • Release grpcio wheels with Python 3.14 support (#​40403)
  • Asyncio: fixes grpc shutdown race condition occurring during python interpreter finalizations. (#​40447)
    • This also addresses previously reported issues with empty error message on Python interpreter exit (Error in sys.excepthook:/Original exception was: empty): #​36655, #​38679, #​33342
  • Python 3.14: preserve current behavior when using grpc.aio async methods outside of a running event loop. (#​40750)
    • Note: using async methods outside of a running event loop is discouraged by Python, and will be deprecated in future gRPC releases. Please use the asyncio.run() function (or asyncio.Runner for custom loop factories). For interactive mode, use dedicated asyncio REPL: python -m asyncio.

Full Changelog: grpc/grpc@v1.75.0...v1.75.1

v1.75.0

This is release 1.75.0 (gemini) of gRPC Core.

For gRPC documentation, see grpc.io. For previous releases, see Releases.

This release contains refinements, improvements, and bug fixes, with highlights listed below.

Core

  • [Security] Cherry Pick Spiffe Verification. (#​40515)
  • [Python][Typeguard] Part 3 - Add Typeguard to AIO stack in tests. (#​40217)
  • [c-ares] update version to 1.34.5. (#​39508)
  • [pick_first] fix bug that caused us to stop attempting to connect. (#​40162)

C++

  • [OTel C++] Implement retry metrics. (#​39195)

Objective-C

  • Fix data race by adding custom getter for state property with @synchronized locking. (#​40146)

Python

  • gRPC Python (grpcio) now depends on typing-extensions~=4.13. (#​40137)
  • Update musllinux wheels from musllinux_1_1 to musllinux_1_2. (#​40317)
    • Dropping musllinux_1_1 because it reached EOL in November 2024
    • Reference on musllinux platform tags: PEP 656
  • grpc.aio typehint fixes. (#​40215, #​40217)
    • Metadata type validation: Fixed metadata handling to support all sequence types (not just tuples), preventing runtime errors. Enhanced metadata type validation: isinstance(metadata, Sequence) instead of isinstance(metadata, tuple)
    • Serializer parameters: Changed to Optional[SerializingFunction] for more accurate type representation
    • Fixing the error in public API: ClientCallDetails.method was declared as str but always called with bytes, see InterceptedUnaryUnaryCall.
  • Fixes issue #​40325 with grpcio failing to install on all non-Mac Apple devices internal builds. (#​40347)

Ruby

  • Ruby: Mark credential object in channel. (#​40394)
  • [Ruby] Add rubygems support for linux-gnu and linux-musl platforms. (#​39549)
grpc/grpc-java (io.grpc:grpc-api)

v1.82.0

Compare Source

v1.81.0

In this release we drop support for Android API level 22 or lower (Lollipop or earlier), following Google Play Service’s discontinued updates for Lollipop (API levels 21 & 22) and now requires a minimum of API level 23 (Android 6.0 Marshmallow).

API Changes

  • api: Deprecate LoadBalancer.handleResolvedAddresses(). Developers maintaining custom LoadBalancer implementations should transition to using LoadBalancer.acceptResolvedAddresses(). Unlike the deprecated method, acceptResolvedAddresses() returns a Status object, allowing the load balancer to explicitly report success or reject the update if the provided addresses or configuration are invalid. (#​11623)

Behavior Changes

  • core: Enable dns "caching" on Android for 30 seconds to reduce CPU impact of a refresh loop with an LB policy (0675f70). DnsNameResolver ignores re-resolution requests on OpenJDK-like platforms if it has been too soon since the last DNS query because InetAddress.getAllByName() has a cache with a fixed entry lifetime, but this logic was disabled for Android which does not have that style of cache. Android’s cache uses the result TTL, which will rarely be less than 30 seconds. This change would probably be most noticeable when 1) changing to a different network (e.g., from wifi to mobile), 2) the server has different addresses for different networks, and 3) the app is not using AndroidChannelBuilder with an android.context.Context. For reference, it seems Chrome caches for 1 minute

Bug Fixes

  • opentelemetry: Fix baggage propagation, the baggage propagation for opentelemetry introduced in #​12389 was broken. The context is decided once and used for all recording for the call, thus guaranteeing all record()s have consistent information.
  • core: Address a race condition where ManagedChannelOrphanWrapper could incorrectly log a "not shutdown properly" warning during garbage collection when using directExecutor(). (#​12705) (d459338)
  • xds: Fix xDS HTTP CONNECT's transport socket name bug which is now corrected to use typeUrl. (#​12740) (eac9fe9)
  • xds: Fix an issue where subchannel metrics were dropping their association with the backend_service. This ensures xDS load balancing metrics are reported accurately. (#​12735)

New Features

  • netty: Add tcp metrics, by implementing a few of the metrics defined in A80.
  • api: Add a CallOption for a custom label on per-RPC metrics (0e39b29). This CallOption is copied by grpc-opentelemetry to the grpc.client.call.custom label as defined by gRFC A108. See also the gRPC OpenTelemetry Metrics guide (update in-progress)
  • xds: Add support for Weighted Round Robin (WRR) load balancing driven by custom backend metrics, implementing the behavior defined in gRFC A114. (#​12645)
  • utils: Update AdvancedTlsX509KeyManager so that developers can now preserve and use key aliases when dynamically reloading TLS certificates. (#​12686)

Documentation

  • Update the "Outgoing Flow Control" section in the Manual Flow Control example to say onNext() does not block, but rather queues the messages in memory and advises developers to use CallStreamObserver.isReady() to prevent this memory exhaustion (#​12700) (a3a9ffc) (#​12726) (65ae2ef)
  • examples: Clean up Health example, and document need for grpc-services (3ed732f)

Dependencies

  • Upgrade Dependencies (#​12719) (16e17ab). Google-auth-library: 1.42.1, animal-sniffer: 1.27, assertj-core:3.27.7, error_prone_annotations:2.48.0, proto-google-common-protos:2.64.1, google-cloud-logging:3.23.10, jetty-http2-server:12.1.7, jetty-ee10-servlet:12.1.7, lincheck:3.4, opentelemetry-api:1.60.1, opentelemetry-exporter-prometheus:1.60.1-alpha, opentelemetry-gcp-resources:1.54.0-alpha, opentelemetry-sdk-extension-autoconfigure:1.60.1, opentelemetry-sdk-testing:1.60.1, robolectric:4.16.1, tomcat-embed-core:10.1.52, tomcat-embed-core9: 9.0.115,
  • Upgrade Netty to 4.1.132 and netty-tcnative to 2.0.75 (1528f80)

Thanks to

v1.80.0

API Changes

  • core: Added PickResult.copyWithSubchannel() and PickResult.copyWithStreamTracerFactory() to simplify updating PickResult while preserving metadata. Load balancing policies should now ensure ForwardingSubchannel decorators are unwrapped before being returned in a pick result. (#​12658) (eae16b2)

Bug Fixes

  • core: Fixed the retry backoff jitter range to [0.8, 1.2] to align with the gRPC A6 specification. Retries will now occur more consistently around the calculated backoff interval. (#​12639) (024fdd0)
    core: Fixed a race condition in RetriableStream where inFlightSubStreams counting could become inconsistent during concurrent retry and deadline events. This ensures that client calls (such as blockingUnaryCall) do not hang indefinitely and correctly receive a close signal. (#​12649) (73abb48)

Improvements

  • api: Trigger R8's ServiceLoader optimization to reduce necessary configuration when using R8 Full Mode (470219f). This allows gRPC to avoid reflection, and the need to specify -keeps for various class’s constructors.
    Upgrade to protobuf 33.4 (#​12615) (50c18f1)
  • cronet: Introduced CRONET_READ_BUFFER_SIZE_KEY to allow customizing the read buffer size per-stream via CallOptions. Increasing the buffer size from the 4KB default can significantly improve performance for large messages by reducing JNI and context-switching overhead. (31fdb6c)
  • api: Moved FlagResetRule to api/testFixtures and updated ManagedChannelRegistry to honor the GRPC_ENABLE_RFC3986_URIS feature flag. This ensures that target parsing is consistent across the library when the new URI parser is enabled. (#​12608)
  • api: Updated NameResolverRegistry to natively support io.grpc.Uri. This is a foundational change that allows gRPC's name resolution system to handle URIs parsed with the new RFC 3986-compliant parser, ensuring more robust target handling. (#​12609) (9903488)
  • xds: Removed the GRPC_EXPERIMENTAL_XDS_SNI feature flag. SNI determination via xDS is now always enabled and follows gRFC A101, where SNI is derived from xDS configurations like auto_host_sni or UpstreamTlsContext.sni. This ensures that no SNI is sent if not explicitly configured, unless the legacy channel authority fallback is enabled. (#​12625) (ac44e96)

New Features

  • core: pick_first shuffling now a weighted shuffle and observes weights from EDS (34dd290). This finishes the gRFC A113 pick_first: Weighted Random Shuffling support
  • netty: Added RFC 3986 support to the unix: name resolver. This enables proper parsing of Unix domain socket URIs, including correct handling of query and fragment components in both hierarchical (e.g., unix:///path) and opaque (e.g., unix:/path) formats. (#​12659)

Thanks to

v1.79.0

API Changes

  • core: Delete the never-used io.grpc.internal.ReadableBuffer.readBytes(ByteBuffer) (#​12580) (738782f). This is deeply internal and not accessible, so shouldn’t impact anything. However, Apache Arrow Java uses reflection to access private fields; GH-939: Remove reflection for gRPC buffers is swapping to gRPC’s public zero-copy APIs

  • opentelemetry: Add target attribute filter for metrics (#​12587). Introduce an optional Predicate targetAttributeFilter to control how grpc.target is recorded in OpenTelemetry client metrics. When a filter is provided, targets rejected by the predicate are normalized to "other" to reduce grpc.target metric cardinality, while accepted targets are recorded as-is. If no filter is set, existing behavior is preserved. This change adds a new Builder API on GrpcOpenTelemetry to allow applications to configure the filter. 

Behavior Changes

  • core: Convert AutoConfiguredLB to an actual LB (4bbf8ee). This is an internal refactoring, but it does improve how errors are handled for broken binaries. Previously, not being able to load pick_first would result in a channel panic. Now it is handled as a regular load balancing error

  • okhttp: Assert no pending streams before transport READY (#​12566) (ed6d175). No pending streams should exist when the transport transitions to READY. This PR adds an assertion to help verify this invariant.

Bug Fixes

  • core: PickFirstLB should not return a subchannel during CONNECTING (228fc8e). Pick-first in grpc-java has behaved this way since it was created, and it was of no consequence. However, now there are some load balancing policies (mainly RLS) that will do a pick() and hope the result to be reasonably accurate for metri

Note

PR body was truncated to here.

@renovate

renovate Bot commented Sep 3, 2025

Copy link
Copy Markdown
Author

ℹ Artifact update notice

File name: modules/go/go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 3 additional dependencies were updated

Details:

Package Change
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 -> v1.5.1
google.golang.org/protobuf v1.36.7 -> v1.36.10
golang.org/x/net v0.40.0 -> v0.46.1-0.20251013234738-63d1a5100f82

@renovate renovate Bot changed the title Update grpc to v1.75.0 Update grpc Sep 10, 2025
@renovate renovate Bot changed the title Update grpc Update grpc to v1.75.0 Oct 2, 2025
@github-actions github-actions Bot removed the lang-go label Oct 2, 2025
@renovate renovate Bot changed the title Update grpc to v1.75.0 Update grpc Oct 3, 2025
@renovate renovate Bot force-pushed the renovate/grpc branch 2 times, most recently from cf3386b to 6bbd69c Compare October 9, 2025 03:26
@renovate renovate Bot changed the title Update grpc Update grpc to v1.76.0 Oct 9, 2025
@renovate renovate Bot changed the title Update grpc to v1.76.0 Update grpc Nov 8, 2025
@renovate

renovate Bot commented Dec 12, 2025

Copy link
Copy Markdown
Author

ℹ️ Artifact update notice

File name: modules/go/go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 3 additional dependencies were updated
  • The go directive was updated for compatibility reasons

Details:

Package Change
go 1.24.5 -> 1.25.0
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1 -> v1.5.1
google.golang.org/protobuf v1.36.7 -> v1.36.11
golang.org/x/net v0.40.0 -> v0.51.0

@renovate renovate Bot force-pushed the renovate/grpc branch 2 times, most recently from 72d601c to 45e2b47 Compare February 6, 2026 11:39
@renovate renovate Bot force-pushed the renovate/grpc branch 2 times, most recently from d9c44f9 to c279ae8 Compare February 13, 2026 20:15
@renovate renovate Bot force-pushed the renovate/grpc branch from c279ae8 to f89adde Compare March 8, 2026 12:11
@renovate renovate Bot force-pushed the renovate/grpc branch from f89adde to ab4785f Compare March 31, 2026 11:56
@renovate renovate Bot force-pushed the renovate/grpc branch from ab4785f to f11e587 Compare April 15, 2026 18:00
@renovate renovate Bot changed the title Update grpc Update grpc to v1.80.0 Apr 15, 2026
@renovate renovate Bot force-pushed the renovate/grpc branch from f11e587 to c25d0ad Compare May 2, 2026 03:41
@renovate renovate Bot changed the title Update grpc to v1.80.0 Update grpc May 2, 2026
@renovate renovate Bot force-pushed the renovate/grpc branch from c25d0ad to ad59afc Compare May 4, 2026 20:12
@renovate renovate Bot force-pushed the renovate/grpc branch from ad59afc to 35da73c Compare May 16, 2026 08:00
@renovate renovate Bot force-pushed the renovate/grpc branch from 35da73c to 9062bb8 Compare May 30, 2026 19:10
@renovate renovate Bot force-pushed the renovate/grpc branch from 9062bb8 to 0474fd3 Compare June 13, 2026 00:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants