Releases: grpc/grpc-go
Releases · grpc/grpc-go
Release 1.58.1
Bug Fixes
- grpc: fix a bug that was decrementing active RPC count too early for streaming RPCs; leading to channel moving to IDLE even though it had open streams
- grpc: fix a bug where transports were not being closed upon channel entering IDLE
Release 1.58.0
API Changes
See #6472 for details about these changes.
- balancer: add
StateListener
toNewSubConnOptions
forSubConn
state updates and deprecateBalancer.UpdateSubConnState
(#6481)UpdateSubConnState
will be deleted in the future.
- balancer: add
SubConn.Shutdown
and deprecateBalancer.RemoveSubConn
(#6493)RemoveSubConn
will be deleted in the future.
- resolver: remove deprecated
AddressType
(#6451)- This was previously used as a signal to enable the "grpclb" load balancing policy, and to pass LB addresses to the policy. Instead,
balancer/grpclb/state.Set()
should be used to add these addresses to the name resolver's output. The built-in "dns" name resolver already does this.
- This was previously used as a signal to enable the "grpclb" load balancing policy, and to pass LB addresses to the policy. Instead,
- resolver: add new field
Endpoints
toState
and deprecateAddresses
(#6471)Addresses
will be deleted in the future.
New Features
- balancer/leastrequest: Add experimental support for least request LB policy and least request configured as a custom xDS policy (#6510, #6517)
- Set
GRPC_EXPERIMENTAL_ENABLE_LEAST_REQUEST=true
to enable
- Set
- stats: Add an RPC event for blocking caused by the LB policy's picker (#6422)
Bug Fixes
- clusterresolver: fix deadlock when dns resolver responds inline with update or error at build time (#6563)
- grpc: fix a bug where the channel could erroneously report
TRANSIENT_FAILURE
when actually moving toIDLE
(#6497) - balancergroup: do not cache closed sub-balancers by default; affects
rls
,weightedtarget
andclustermanager
LB policies (#6523) - client: fix a bug that prevented detection of RPC status in trailers-only RPC responses when using
ClientStream.Header()
, and prevented retry of the RPC (#6557)
Performance Improvements
- client & server: Add experimental
[With]SharedWriteBuffer
to improve performance by reducing allocations when sending RPC messages. (Disabled by default.) (#6309)- Special Thanks: @s-matyukevich
Release 1.57.0
API Changes
- resolver: remove deprecated
Target.Scheme
andTarget.Authority
. UseURL.Scheme
andURL.Host
instead, respectively (#6363)
Behavior Changes
- client: percent-encode the default authority for the channel (#6428)
- xds: require EDS service name to be set in a CDS cluster with an 'xdstp' resource name (gRFC A47) (#6438)
New Features
- reflection: support the v1 reflection service and update
Register
to register both v1alpha and v1 (#6329) - xds: add support for string matcher in RBAC header matching (#6419)
- alts: add support for
GRPC_ALTS_MAX_CONCURRENT_HANDSHAKES
env var (#6267) - balancer/weightedroundrobin: de-experimentalize name of LB policy (#6477)
Bug Fixes
- status:
status.FromError
now returns an error withcodes.Unknown
when the error implements theGRPCStatus()
method, and callingGRPCStatus()
returnsnil
(#6374)- Special Thanks: @atollena
- server: fix bug preventing TCP user timeout from being set on the connection when TLS is used (#6321)
- Special Thanks: @tobotg
- client: eliminate connection churn during an address update that differs only in balancer attributes (#6439)
- clusterresolver: handle EDS nacks, resource-not-found errors, and DNS Resolver errors correctly (#6436, #6461)
- xds/ringhash: cache connectivity state of subchannels inside picker to avoid rare races (#6351)
Release 1.56.2
- status: To fix a panic,
status.FromError
now returns an error withcodes.Unknown
when the error implements theGRPCStatus()
method, and callingGRPCStatus()
returnsnil
. (#6374)
Release 1.55.1
- status: To fix a panic,
status.FromError
now returns an error withcodes.Unknown
when the error implements theGRPCStatus()
method, and callingGRPCStatus()
returnsnil
. (#6374)
Release 1.56.1
- client: handle empty address lists correctly in addrConn.updateAddrs
Release 1.56.0
New Features
- client: support channel idleness using
WithIdleTimeout
dial option (#6263)- This feature is currently disabled by default, but will be enabled with a 30 minute default in the future.
- client: when using pickfirst, keep channel state in TRANSIENT_FAILURE until it becomes READY (gRFC A62) (#6306)
- xds: Add support for Custom LB Policies (gRFC A52) (#6224)
- xds: support pick_first Custom LB policy (gRFC A62) (#6314) (#6317)
- client: add support for pickfirst address shuffling (gRFC A62) (#6311)
- xds: Add support for String Matcher Header Matcher in RDS (#6313)
- xds/outlierdetection: Add Channelz Logger to Outlier Detection LB (#6145)
- Special Thanks: @s-matyukevich
- xds: enable RLS in xDS by default (#6343)
- orca: add support for application_utilization field and missing range checks on several metrics setters
- balancer/weightedroundrobin: add new LB policy for balancing between backends based on their load reports (gRFC A58) (#6241)
- authz: add conversion of json to RBAC Audit Logging config (#6192)
- authz: add support for stdout logger (#6230 and #6298)
- authz: support customizable audit functionality for authorization policy (#6192 #6230 #6298 #6158 #6304 and #6225)
Bug Fixes
- orca: fix a race at startup of out-of-band metric subscriptions that would cause the report interval to request 0 (#6245)
- xds/xdsresource: Fix Outlier Detection Config Handling and correctly set xDS Defaults (#6361)
- xds/outlierdetection: Fix Outlier Detection Config Handling by setting defaults in ParseConfig() (#6361)
API Changes
- orca: allow a ServerMetricsProvider to be passed to the ORCA service and ServerOption (#6223)
Release 1.54.1
Bug Fixes
- credentials/alts: revert a change that causes a crash in the handshaker
Release 1.55.0
Behavior Changes
- xds: enable federation support by default (#6151)
- status:
status.Code
andstatus.FromError
handle wrapped errors (#6031 and #6150)- Special Thanks: @psyhatter
New Features
- xds/xdsclient: support
ignore_resource_deletion
server feature as per gRFC A53 (#6035) - security/advancedtls: add min/max TLS version selection options (#6007)
- Special Thanks: @joeljeske
Bug Fixes
- xds: stop routing RPCs to deleted clusters (#6125)
- client: fix race between stream creation and GOAWAY receipt, which could lead to spurious UNAVAILABLE stream errors (#6142)
Performance Improvements
- server: improve stream handler goroutine worker allocation when
NumStreamWorkers
is used (#6004)- Special Thanks: @SaveTheRbtz
GCP Observability v1.0.0
The observability module provides GCP users with a simple way to export RPC logging, tracing, and metrics to Google Cloud Operations. This is the first (GA) release of this module. For more information, please see this blog post.