Commit Graph

2174 Commits

Author SHA1 Message Date
Mark D. Roth a1d42f84ef
xds_cluster_resolver: pass useful resolution_note to children (#30283)
* xds_cluster_resolver: pass useful resolution_note to children

* clang-format
2022-07-18 16:54:16 -07:00
Mark D. Roth 201213c681
client channel: add tests for authority override precedence (#30172)
* client channel: add tests for authority override precedence

* add unit test

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-18 16:02:59 -07:00
Esun Kim 98b1a7710e
Changed num_threads based on slowness factor for xSAN (#30240)
* Changed num_threads

* Update by review

* Update by review
2022-07-11 14:47:55 -07:00
Craig Tiller d304712f64
[channel_args] Spread grpc_core::ChannelArgs through client channel code (#30008)
* [channel_args] Spread grpc_core::ChannelArgs through client channel code

* progress

* progress

* grpc compiles

* uniqueptr+compiles

* fix

* fix

* fix

* fix

* fix

* fix

* fixes

* fix

* fix

* fixes

* fix-lb

* fix

* fix up arg construction

* fix

* fix

* fix

* fix

* move to const& to save bytes

* fix

* fix

* progress

* review feedback

* fix

* fix

* fixes

* fixes

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fix

* debug-helper

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* fix

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-07-07 19:19:11 -07:00
Mark D. Roth 694e634a79
client_lb_end2end_test: fix flake in RoundRobin.SingleReconnect test (#30229)
* client_lb_end2end_test: fix flake in RoundRobin.SingleReconnect test

* fix condition used to determine when client has seen backend 0 down

* remove duplicate counter reset

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-07 14:59:13 -07:00
Mark D. Roth a3afb81274
Second attempt: XdsClient: refactor transport code to make it injectable (#30225)
* Revert "Revert "XdsClient: refactor transport code to make it injectable (#30183)" (#30223)"

This reverts commit fa57b9d0bc.

* fix deadlock seen internally

* Automated change: Fix sanity tests

* fix memory leak

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-07 10:03:23 -07:00
AJ Heller fa57b9d0bc
Revert "XdsClient: refactor transport code to make it injectable (#30183)" (#30223)
This reverts commit bd9bc5fd3e.
2022-07-06 12:29:57 -07:00
Mark D. Roth bd9bc5fd3e
XdsClient: refactor transport code to make it injectable (#30183)
* XdsClient: refactor transport code to make it injectable

* clang-format

* Automated change: Fix sanity tests

* remove unnecessary dtor

* fix build

* re-add missing drain of WorkSerializer queue after receiving a message

* remove unused code

* fix memory leak

* Automated change: Fix sanity tests

* fix another memory leak

* fix unused parameter

* fix tsan failure

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-07-06 09:26:34 -07:00
Mark D. Roth 74e1023f0a
priority LB: fix dumb reversed-conditional bug (#30149)
* C++ end2end tests: refactor ConnectionAttemptInjector code

* priority LB: fix dumb reversed-conditional bug

* clang-format

* add test
2022-07-01 09:13:56 -07:00
Yash Tibrewal 5e19c780c3
XdsSecurityTest: Rework infrastructure (#30138)
* XdsSecurityTest: Rework infrastructure

* Reviewer comments

* Comment

* Add TODO
2022-06-30 16:25:28 -07:00
Mark D. Roth d379e811be
C++ end2end tests: refactor ConnectionAttemptInjector code (#30148)
* C++ end2end tests: refactor ConnectionAttemptInjector code

* clang-format
2022-06-30 14:32:27 -07:00
Ashitha Santhosh 9bc16ede7c
Update authz tests to use callback (#30058)
* Update authz core tests to use callback
2022-06-30 12:16:22 -07:00
Craig Tiller eb5ae61470
Reland (again) bytestream removal (#29987)
* Revert "Revert "Reland bytestream removal (#29911)" (#29964)"

This reverts commit e6c6840db3.

* initial fc fuzzer

* fixes

* add rq to fc fuzzer

* fleshing things out

* Automated change: Fix sanity tests

* cleanup

* send with payload

* ensure if no reader no flow control tokens are granted

* remove some public methods

* remove bogus benchmarks

* account for pending size

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* better logic

* Automated change: Fix sanity tests

* fix

* fixes

* fuzz pending size

* Automated change: Fix sanity tests

* fix

* Automated change: Fix sanity tests

* huh

* increase too short timeout

* review feedback

* review feedback

* fix u32 overflow

* fix

* robustness fixes for channelz_servicer_test

* fix

* Automated change: Fix sanity tests

* fix

* fix

* fix

* Automated change: Fix sanity tests

* dont send window updates if read closed

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-27 21:21:23 -07:00
Yash Tibrewal 3aad52e4d3
XdsSecurityTest flakiness: Add broken pipe to expected error messages (#30091) 2022-06-27 13:19:00 -07:00
Mark D. Roth 870fe8624f
security handshaker: include security connector type in error message (#30046)
* weighted_target and RLS: delegate to child picker on error

* security handshaker: include security connector type in error message

* update test

* fix sanity

* fix crash

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-06-23 02:05:56 -07:00
Mark D. Roth 3a8e54b005
round_robin: update status upon each new connection failure (#30001)
* refactor connection injectors in client_lb_end2end_test and add test for sticky TF

* round_robin: update status upon each new connection failure

* fix ring_hash too

* clang-format
2022-06-22 15:40:29 -07:00
Mark D. Roth 86e282ba97
weighted_target and RLS: delegate to child picker on error (#29870)
* weighted_target and RLS: delegate to child picker on error

* fix RLS bug that caused us to always use the last target in the list

* add comment
2022-06-22 15:21:18 -07:00
Mark D. Roth 7976501534
client_lb_end2end_test: refactor connection injectors and add test for sticky TF (#29993)
* refactor connection injectors in client_lb_end2end_test and add test for sticky TF

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-06-22 12:22:00 -07:00
Mark D. Roth d0c8b29ef7
xDS: fix endpoint weight defaults (#30079)
* xDS: fix endpoint weight defaults

* add test

* NACK endpoint weight of 0

* iwyu

* clang-tidy

* fix test
2022-06-22 11:54:38 -07:00
Yash Tibrewal 78d6d71af3
Call: Send cancel op down the stack even when no ops are sent (#30004)
* Call: Send cancel op down the stack even when no ops are sent

* Add test
2022-06-14 13:10:41 -07:00
Mark D. Roth f12972506e
xDS: improve status messages from xDS resolver failures (#29975) 2022-06-14 10:25:30 -07:00
Mark D. Roth a78df68e96
xds: add "ignore_resource_deletion" server feature (#29633)
* xds: add "ignore_resource_deletion" server feature

* add logging

* clang-format

* fix build

* fix build

* add test for LDS resource deletion on gRPC server

* clang-format
2022-06-13 14:01:13 -07:00
Craig Tiller 6532084a06
[iwyu] rest of the owl: src/core/lib - excluding iomgr, gpr (#29735)
* [iwyu] rest of the owl: src/core/lib - excluding iomgr, gpr

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fixes

* Automated change: Fix sanity tests

* fix

* fix

* fixes

* fixes

* x

* fix?

* fix

* windows fix

* fix

* fix

* fix

* fix

* fix

* debug

* fix

* fix

* Revert "debug"

This reverts commit c99b8d12dd.

* Automated change: Fix sanity tests

* fix?

* Automated change: Fix sanity tests

* header cleanup

* fix

* fix

* fix

* Automated change: Fix sanity tests

* fix

* fix

* Automated change: Fix sanity tests

* Automated change: Fix sanity tests

* fixes

* Automated change: Fix sanity tests

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2022-06-10 13:04:47 -07:00
Vignesh Babu f8eedac1fc
Changing grpc_tcp_client_vtable to include TCP cancel connect method (#29968)
* Changing grpc_tcp_client_vtable to include TCP cancel connect method

* fix unused parameter error

* update

* fix sanity checks
2022-06-10 10:56:34 -07:00
Mark D. Roth 8459824e5c
xds end2end tests: change tests to check all RPC failure statuses (#29974)
* WIP

* fix from merge

* fix ring_hash tests

* ring hash: fix picker propagation bug in xds_cluster_manager policy

* fix build

* clang-format (ish)

* fix build

* more conversion

* remove old CheckRpcSendFailure

* fix SendRpcsAndCountFailuresWithMessage

* fix WaitForBackend

* clang-format

* revert xds resolver change, that will be done in a separate PR

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-06-09 18:00:38 -07:00
Mark D. Roth 470a3066c7
ring hash: fix picker propagation bug in xds_cluster_manager policy (#29959)
* ring hash: fix picker propagation bug in xds_cluster_manager policy

* fix build

* fix build
2022-06-09 10:08:47 -07:00
Esun Kim c6ebbb5482
Added GRPC_ERROR_IS_NONE (#29937)
* Added GRPC_ERROR_IS_NONE

* Convert

* Fix
2022-06-08 11:24:20 -07:00
Mark D. Roth 27e6a094e1
client_lb_end2end_test: fix broken tests (#29938)
* client_lb_end2end_test: fix broken tests

* poll polling engine gives slightly different error messages
2022-06-07 15:32:47 -07:00
Mark D. Roth 35b7d88654
client_lb_end2end_test: explicitly check failed RPC statuses (#29906)
* client_lb_end2end_test: explicitly check failed RPC statuses

* appease clang-tidy

* fix memory leak
2022-06-07 11:59:08 -07:00
Mark D. Roth 17bec49af7
rls: use UNAVAILABLE instead of status from RLS RPC, and test failure statuses (#29893)
* rls: use UNAVAILABLE instead of status from RLS RPC, and test failure statuses

* simplify
2022-06-07 10:11:20 -07:00
Mark D. Roth e49c61cd2f
client_channel: remove synchronous subchannel connectivity state API (#28339)
* ring_hash: don't recreate ring when individual subchannel states change

* client_channel: remove synchronous subchannel connectivity state API

* change subchannel list to automatically start watching all subchannels

* use a separate loop to start watches, so list size is logged correctly

* fix RR to re-resolve on IDLE again

* fix ring_hash to delay promoting new subchannel list

* fix pick_first to wait for all subchannels to report state

* clean up SubchannelList API

* fix unused argument error

* fix another unused argument error

* clang-format

* fix RR to not re-resolve on initial IDLE state

* also don't re-resolve in initial TF state; same for ring_hash

* clang-format

* change RR and PF to initially report CONNECTING, and add second loop to priority policy

* simplify priority logic a bit

* fix grpclb to drop ref to stats object even if the subchannel call is never started

* fix memory leak in ring_hash

* fix tsan failure in grpclb code

* iwyu

* add missing BUILD deps

* update outlier_detection policy

* fix test

* fix pick_first to not report TF prematurely due to subchannel sharing

* fix test to not depend on timing
2022-06-03 06:44:26 -07:00
Anirudh Ramachandra e89883cc87
Revert "Revert "Fix grpc_sockaddr_to_uri to return URI encoded string. Also see #29323 which has a similar fix for unix abstract addresses."" (#29798)
Reverts #29639
2022-06-02 13:51:04 -07:00
Yash Tibrewal 5d9cdc8e67
xds: Add XdsLbRegistry (#29756)
* xds: Add XdsLbRegistry

* Formatting

* Fix upb output

* Allow alternative type url for Custom LBs

* Cleanup

* Reviewer comments

* Add some comments

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Reviewer comments

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Fix tests

* Unused parameters

* Change to make TextFormat usage work internally

* Fix namespace qualification error
2022-06-01 14:08:26 -07:00
Mark D. Roth bbf56baa88
client_lb_end2end_test: fix flake in RoundRobinTest.UpdateInError (#29847) 2022-06-01 07:47:19 -07:00
Yash Tibrewal 8cdf8beafd
xDS: Workaround to get gRPC clients working with istio (#29841)
* xDS: Workaround to get gRPC clients working with istio

* Formatting

* Comment test too

* Disable instead of commenting
2022-05-31 17:39:46 -07:00
Mark D. Roth 65a7ce3f04
Revert "Revert "server: add method to expose authority seen by server (#29768)" (#29806)" (#29807)
This reverts commit e39e943529.
2022-05-31 14:15:45 -07:00
Mark D. Roth 64b422091e
xds_core_end2end_test: increase timeouts to fix flakiness (#29803)
* xds_core_end2end_test: increase timeouts to fix flakiness

* clang-format
2022-05-27 14:34:53 -07:00
Mark D. Roth a4cbeee699
xds_core_end2end_test: increase RPC timeout on BootstrapSource test (#29802) 2022-05-27 14:32:53 -07:00
Mark D. Roth 98c40ce772
client_lb_end2end_test: increase timeouts in RoundRobinTest.UpdateInError (#29805) 2022-05-27 08:11:23 -07:00
Mark D. Roth e39e943529
Revert "server: add method to expose authority seen by server (#29768)" (#29806)
This reverts commit 449adce98b.
2022-05-26 16:15:14 -07:00
Mark D. Roth 449adce98b
server: add method to expose authority seen by server (#29768)
* server: add method to expose authority seen by server

* Automated change: Fix sanity tests

Co-authored-by: markdroth <markdroth@users.noreply.github.com>
2022-05-26 15:03:28 -07:00
Mark D. Roth fb1cc54d41
xds_core_end2end_test: fix federation test timeouts (#29789) 2022-05-26 12:05:57 -07:00
Mark D. Roth 9c23d7999c
subchannel: fix reset backoff when connection attempt is in flight (#29792)
* subchannel: fix reset backoff when connection attempt is in flight

* clang-tidy
2022-05-26 10:53:11 -07:00
Mark D. Roth 3f5931294e
xds_cluster_type_end2end_test: fix flake in AggregateClusterTest.FallBackWithConnectivityChurn test (#29786) 2022-05-25 14:29:09 -07:00
Mark D. Roth 709dff9ca8
security and subchannel: implement UniqueTypeName and use it in these interfaces (#29709)
* implement UniqueTypeName API

* convert security code to use UniqueTypeName

* change subchannel data producer API to use UniqueTypeName

* sanitize

* add missing build dep

* fix credentials_test

* fix certificate_provider_store_test

* fix tls_security_connector_test

* attempt to fix windows build

* avoid unnecessary allocation

* work around MSVC 2017 bug

* sanity

* change factory to not be templated

* fix sanity

* fix bug in chttp2 connector that used server creds instead of channel creds

* add missing build dep

* simplify API
2022-05-23 09:45:20 -07:00
Nicolas Noble 667691c499
server: per-rpc backend metric reporting (#29621)
Users can now report per-rpc metrics from servers to clients.
2022-05-20 15:54:30 -07:00
Mark D. Roth a6d70b449b
xds: don't start resource timer after ADS stream restart if resource is already cached (#29668)
* xds: don't start resource timer after ADS stream restart

* fix sanity

* add missing build dep

* attempt to use std::move() for absl::Status

* sanity
2022-05-20 13:40:43 -07:00
apolcyn 965feb5726
xds: Remove aggregate and logical dns clusters env var guard (#29742)
* Remove aggregate and logical dns clusters env var guard
2022-05-20 12:45:33 -07:00
Mark D. Roth 5c9a971904
xds: use federation env var to guard new-style resource name parsing (#29725) 2022-05-18 15:03:01 -07:00
donnadionne 03cf989610
outlier detection: implement LB policy and xDS configuration (#29343)
* Initial skeleton for outlier detection

* fixing code review comments (modifying child policy)

* Skeleton and all tests passing except for 1

* small code review comments fix

* Adding the parsing of the policy in cds and put it in discovery
mechansim json format

* Parsing outlier detection json policy from parent

* Adding parsing of the updates

* Added Subchannel wrapper and watcher wrapper: and all states pass
through and all tests still pass

* added framework to do eject and uneject

* fixing code review comments

* restore a test

* fixing code review comments

* taking care of code review comments

* removing debug code and rebuild build files

* fixing according to code review comments

* fixing code review comments

* Adding address to subchannel map

* addressing code review comments

* adding call counter

* Refcount SubchannelState (in the map) and store them in Subcahnnel Wrapper

* fixing counterss

* Call counter and tracker skleton added

* Call counter

* addressing code review comments

* addressing code review comments

* Added CallCounter and timer

* fixing sanity; but more importantly: taking out timer temporarly as it
was causing test failures.

* sanity

* fixing according to code review comments

* addressing code review comments

* all algorithms implemented

* addressing code review comment about starting the timer

* protect private vars

* small fix

* Added one more corner case

* fixing EjectionTimer

* Fixing according to code review suggestions.

* fixing according to code reveiw comments

* taking care of code review comments

* fixing sanity issues

* Adding proto to tests

* First test

* Fixing according to code review comments

* Tests all working now

* fixing a crash

* fixing build files

* fixing sanity

* sanity

* Simplifying tests

* merge and update

* format

* sanity and format

* Fixing asan error

* fixing parsing logic and error handling

* 6 more tests done

* Added verifying unejection to tests

* Added all the tests

* fixing according to code review comments

* fixing asan and ubsan

* Fixing tests according to code review comments

* Added both algorithm tests

* added percentage enforcement tests

* fixing tsan error

* keeping debug, but fix warning

* remove debugs

* fixing IWYU and build errors after

* test comments change only but very important

* fixing code review comments

* one more refactorying of util function

* Removed debugs and added one more helper method

* one more logic fix

* Fixing last bit of code review comments and added disable tests

* fixing code review comments

* fixing IWYU

* sanity format

* protecting the feature with environment var:
registering policy and generating policy

* added a todo according to code review comments

* fixing a clang finding at import time

* build fix after synching to latest
2022-05-16 21:37:34 -07:00