Skip to content

xds, pickfirst: Enable additional addresses in xDS, set new pick_first as default #8126

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Feb 27, 2025

Conversation

arjan-bal
Copy link
Contributor

@arjan-bal arjan-bal commented Feb 26, 2025

Tested

  • Ran all internal tests (global TAP) with the flags turned on, verified none of the failures were related.
  • PSM interop Dual Stack tests passing since 14th Feb.

RELEASE NOTES:

  • pickfirst: The new pick first LB policy is made the default. The new LB policy implements the Happy Eyeballs algorithm (see A61) to connect to multiple addresses concurrently. To disable the new policy set the environment variable GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST to false (case insensitive).
  • xds: LB policies will receive additional addresses for endpoints which are specified in the additional_addresses field in the Endpoint message. The additional addresses will be present in the ResolverState.Endpoints passed to UpdateClientConnState method of the balancers. To disable this feature, set the environment variable GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS to false (case insensitive).

@arjan-bal arjan-bal added this to the 1.71 Release milestone Feb 26, 2025
@arjan-bal arjan-bal added the Type: Feature New features or improvements in behavior label Feb 26, 2025
@arjan-bal arjan-bal force-pushed the enable-dualstack-flags branch from 3fb6f32 to aa373c9 Compare February 26, 2025 06:49
Copy link

codecov bot commented Feb 26, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 82.17%. Comparing base (dbf92b4) to head (a81b1d2).
Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8126      +/-   ##
==========================================
- Coverage   82.18%   82.17%   -0.01%     
==========================================
  Files         387      387              
  Lines       38947    38941       -6     
==========================================
- Hits        32007    31999       -8     
- Misses       5613     5614       +1     
- Partials     1327     1328       +1     
Files with missing lines Coverage Δ
internal/envconfig/envconfig.go 100.00% <ø> (ø)

... and 29 files with indirect coverage changes

@arjan-bal arjan-bal requested a review from dfawley February 26, 2025 06:55
@arjan-bal arjan-bal changed the title xds, pickfirst: Enable additional addresses in xDS and new pick_first as default xds, pickfirst: Enable additional addresses in xDS, set new pick_first as default Feb 26, 2025
@@ -19,8 +19,8 @@ jobs:
- name: Run coverage
run: go test -coverprofile=coverage.out -coverpkg=./... ./...

- name: Run coverage with new pickfirst
run: GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST=true go test -coverprofile=coverage_new_pickfirst.out -coverpkg=./... ./...
- name: Run coverage with other pickfirst
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe: s/other/old/?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed

@easwars easwars assigned arjan-bal and unassigned dfawley Feb 26, 2025
@arjan-bal arjan-bal merged commit a510cf5 into grpc:master Feb 27, 2025
15 checks passed
@arjan-bal arjan-bal deleted the enable-dualstack-flags branch February 27, 2025 04:52
purnesh42H pushed a commit to purnesh42H/grpc-go that referenced this pull request Mar 1, 2025
cds: stop child policies on resource-not-found errors (grpc#8122)

xds: simplify code handling certain error conditions in the resolver (grpc#8123)

xds, pickfirst: Enable additional addresses in xDS, set new pick_first as default (grpc#8126)

github: change test action to cover the legacy pickfirst balancer (grpc#8129)

cleanup: replace dial with newclient (grpc#7967)

cleanup: replace dial with newclient (grpc#7970)

stats/openetelemetry: refactor and make e2e test stats verification deterministic (grpc#8077)

xds: introduce simple grpc transport for generic xds clients (grpc#8066)

xds: generic xds client common configs

re-push comments

improve ServerConfig equal

easwar review round 1 on documentation

easwar comments on docstrings

easwar comments round 4

config tests

merge with previous pr

xds: add lrs client and xDS client interfaces

second pass to documentation language

change from godoc review

dfawley review 2

easwar review 1

changed to decoder struct

move authorities under xds client

easwar review 2

easwars review 4

ResourceWatcher done and LoadStore stop

grpc based transport

remove server config extension interface

add byte codec

dfawley review 1

send and recv tests with byte based test server

change to proto based server

easwar review 1

easwar review 3

xds: generic xds client ads transport channel
purnesh42H pushed a commit to purnesh42H/grpc-go that referenced this pull request Mar 1, 2025
ads: stop child policies on resource-not-found errors (grpc#8122)

xds: simplify code handling certain error conditions in the resolver (grpc#8123)

xds, pickfirst: Enable additional addresses in xDS, set new pick_first as default (grpc#8126)

github: change test action to cover the legacy pickfirst balancer (grpc#8129)

cleanup: replace dial with newclient (grpc#7967)

cleanup: replace dial with newclient (grpc#7970)

stats/openetelemetry: refactor and make e2e test stats verification deterministic (grpc#8077)

xds: introduce simple grpc transport for generic xds clients (grpc#8066)

xds: generic xds client common configs

re-push comments

improve ServerConfig equal

easwar review round 1 on documentation

easwar comments on docstrings

easwar comments round 4

config tests

merge with previous pr

xds: add lrs client and xDS client interfaces

second pass to documentation language

change from godoc review

dfawley review 2

easwar review 1

changed to decoder struct

move authorities under xds client

easwar review 2

easwars review 4

ResourceWatcher done and LoadStore stop

grpc based transport

remove server config extension interface

add byte codec

dfawley review 1

send and recv tests with byte based test server

change to proto based server

easwar review 1

easwar review 3

xds: generic xds client ads transport channel
janardhanvissa pushed a commit to janardhanvissa/grpc-go that referenced this pull request Mar 24, 2025
HailongWen added a commit to HailongWen/google-cloud-go that referenced this pull request May 6, 2025
As seen in b/415354418, this new experimental feature introduced by
grpc/grpc-go#8126 is not yet stable and may
cause intermittent CloudPath fallbacks.

As a user of the OSS gRPC library, CS library should explicitly disable
it until the underlying issue is fixed.
rahul2393 added a commit to googleapis/google-cloud-go that referenced this pull request May 7, 2025
As seen in b/415354418, this new experimental feature introduced by
grpc/grpc-go#8126 is not yet stable and may
cause intermittent CloudPath fallbacks.

As a user of the OSS gRPC library, CS library should explicitly disable
it until the underlying issue is fixed.

Co-authored-by: rahul2393 <[email protected]>
2FaceS-bit pushed a commit to 2FaceS-bit/google-cloud-go that referenced this pull request May 12, 2025
As seen in b/415354418, this new experimental feature introduced by
grpc/grpc-go#8126 is not yet stable and may
cause intermittent CloudPath fallbacks.

As a user of the OSS gRPC library, CS library should explicitly disable
it until the underlying issue is fixed.

Co-authored-by: rahul2393 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature New features or improvements in behavior
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants