workhorse: Update gRPC dependencies
This MR contains the following updates:
| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
| google.golang.org/grpc | require | minor |
v1.73.0 -> v1.77.0
|
|
| google.golang.org/protobuf | require | patch |
v1.36.6 -> v1.36.10
|
v1.36.11 |
MR created with the help of gitlab-org/frontend/renovate-gitlab-bot
Release Notes
grpc/grpc-go (google.golang.org/grpc)
v1.77.0: Release 1.77.0
API Changes
- mem: Replace the
Readerinterface with a struct for better performance and maintainability. (#8669)
Behavior Changes
- balancer/pickfirst: Remove support for the old
pick_firstLB policy via the environment variableGRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST=false. The newpick_firsthas been the default sincev1.71.0. (#8672)
Bug Fixes
- xdsclient: Fix a race condition in the ADS stream implementation that could result in
resource-not-founderrors, causing the gRPC client channel to move toTransientFailure. (#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)
- Special Thanks: @jgold2-stripe
- 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=falsedisables this change; please file a bug if any problems are encountered as we will remove this option soon. (#8613)
- Setting environment variable
- 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)
- Special Thanks: @hugehoo
- 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_firstbut don't set endpoints. (#8610) - mem: Clear large buffers before re-using. (#8670)
Performance Improvements
- transport: Reduce heap allocations to reduce time spent in garbage collection. (#8624, #8630, #8639, #8668)
- transport: Avoid copies when reading and writing Data frames. (#8657, #8667)
- mem: Avoid clearing newly allocated buffers. (#8670)
New Features
- outlierdetection: Add metrics specified in gRFC A91. (#8644)
- Special Thanks: @davinci26, @PardhuKonakanchi
- stats/opentelemetry: Add support for optional label
grpc.lb.backend_servicein 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=trueto enable this feature. (#8536)- Special Thanks: @dimpavloff
- experimental/stats: Add support for up/down counters. (#8581)
v1.76.0: Release 1.76.0
Dependencies
Bug Fixes
- client: Return status
INTERNALwhen a server sends zero response messages for a unary or client-streaming RPC. (#8523) - client: Fail RPCs with status
INTERNALinstead ofUNKNOWNupon receiving http headers with status 1xx andEND_STREAMflag set. (#8518)- Special Thanks: @vinothkumarr227
- pick_first: Fix race condition that could cause pick_first to get stuck in
IDLEstate on backend address change. (#8615)
New Features
- credentials: Add
credentials/jwtpackage providing file-based JWT PerRPCCredentials (A97). (#8431)- Special Thanks: @dimpavloff
Performance Improvements
- client: Improve HTTP/2 header size estimate to reduce re-allocations. (#8547)
- encoding/proto: Avoid redundant message size calculation when marshaling. (#8569)
- Special Thanks: @rs-unity
v1.75.1: Release 1.75.1
Bug Fixes
- transport: Fix a data race while copying headers for stats handlers in the std lib http2 server transport. (#8519)
- xdsclient:
- 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
Behavior Changes
- xds: Remove support for GRPC_EXPERIMENTAL_XDS_FALLBACK environment variable. Fallback support can no longer be disabled. (#8482)
- stats: Introduce
DelayedPickCompleteevent, a type alias ofPickerUpdated. (#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
PickerUpdatedsymbol.
- credentials: Properly apply
grpc.WithAuthorityas the highest-priority option for setting authority, above the setting in the credentials themselves. (#8488)- Now that this
WithAuthorityis available, the credentials should not be used to override the authority.
- Now that this
- 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 tofalse). 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)
- Special Thanks: @davinci26
- xds: Fix possible panic when certain invalid resources are encountered. (#8412)
- Special Thanks: @wooffie
- 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
callandendpointin 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
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)
v1.74.2: Release 1.74.2
New Features
- grpc: introduce new
DialOptionsandServerOptions(WithStaticStreamWindowSize,WithStaticConnWindowSize,StaticStreamWindowSize,StaticConnWindowSize) that force fixed window sizes for all HTTP/2 connections. By default, gRPC uses dynamic sizing of these windows based upon a BDP estimation algorithm. The existing options (WithInitialWindowSize, etc) also disable BDP estimation, but this behavior will be changed in a following release. (#8283)
API Changes
- balancer: add
ExitIdlemethod toBalancerinterface. Earlier, implementing this method was optional. (#8367)
Behavior Changes
- xds: Remove the
GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUESTenvironment variable that allows disabling the least request balancer with xDS. Least request was made available by default with xDS in v1.72.0. (#8248)- Special Thanks: @atollena
- server: allow 0s grpc-timeout header values, which older gRPC-Java versions could send. This restores the behavior of grpc-go before v1.73.0. (#8439)
Bug Fixes
- googledirectpath: avoid logging the error message
Attempt to set a bootstrap configuration...when creating multiple directpath channels. (#8419)
Performance Improvements
- transport: reduce heap allocations by pooling objects and avoiding method-to-closure conversions. (#8361)
- transport: reduce heap allocations by re-using
mem.Readerobjects. (#8360)
Documentation
- examples: add examples to demonstrate enabling experimental metrics using the OpenTelemetry plugin. (#8388)
- Special Thanks: @vinothkumarr227
v1.74.1: Release 1.74.1
Version 1.74.1 retracts release v1.74.0 and itself. Release 1.74.0 was accidentally tagged on the wrong commit and should not be used. Version 1.73.0 should be used until 1.74.2 is released.
v1.74.0: Release 1.74.0
Release 1.74.0 was accidentally tagged on the wrong commit and should not be used. Version 1.73.0 should be used until 1.74.1 is released.
v1.73.1: Release 1.73.1
Bug Fixes
- server: Fix a regression preventing streams from being cancelled or timed out when blocked on flow control. (https://github.com/grpc/grpc-go/pull/8528)
protocolbuffers/protobuf-go (google.golang.org/protobuf)
v1.36.10
Full Changelog: https://github.com/protocolbuffers/protobuf-go/compare/v1.36.9...v1.36.10
Bug fixes: CL/704415: reflect/protodesc: edition-2024-specific properties should not be lost when converting FileDescriptorProto to protoreflect.FileDescriptor
Maintenance: CL/708555: internal/race_test: add missing impl.LazyEnabled() t.Skip CL/703295: proto: add more invalid group encoding test cases CL/703276: internal/impl: verify lazy unmarshal on Deterministic encoding CL/703275: internal/impl: stop using deprecated .Field in lazy_test.go CL/702795: all: update to latest github.com/google/go-cmp
v1.36.9
Full Changelog: https://github.com/protocolbuffers/protobuf-go/compare/v1.36.8...v1.36.9
User-visible changes: CL/699715: cmd/protoc-gen-go: add test for "import option" directive CL/699115: internal/editionssupport: declare support for edition 2024 CL/697595: editions: Fix spelling mistake in panic message
v1.36.8
Maintenance:
CL/696316: all: set Go language version to Go 1.23 CL/696315: types: regenerate using latest protobuf v32 release
v1.36.7
Maintenance / optimizations:
CL/683955: encoding/protowire: micro-optimize SizeVarint (-20% on Intel) CL/674055: internal/impl: remove unnecessary atomic access for non-lazy lists CL/674015: impl: remove unnecessary nil check from presence.Present CL/673495: types/descriptorpb: regenerate using latest protobuf v31 release CL/670516: cmd/protoc-gen-go: centralize presence and lazy logic into filedesc CL/670515: internal: move usePresenceForField to internal/filedesc CL/670275: internal/impl: clean up usePresenceForField() (no-op)
Configuration
- If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.