grpc/test/cpp/end2end
Yash Tibrewal 2d9bdfc048
priority and ring_hash LBs: fix interactions when using ring_hash under priority (#29332) (#30253)
* refactor connection delay injection from client_lb_end2end_test

* fix build

* fix build on older compilers

* clang-format

* buildifier

* a bit of code cleanup

* start failover time whenever the child reports CONNECTING, and don't cancel when deactivating

* clang-format

* rewrite test

* simplify logic in priority policy

* clang-format

* switch to using a bit to indicate child healthiness

* fix reversed comment

* more changes in priority and ring_hash.

priority:
- go back to starting failover timer upon CONNECTING, but only if seen
  READY or IDLE more recently than TRANSIENT_FAILURE

ring_hash:
- don't flap back and forth between IDLE and CONNECTING; once we go
  CONNECTING, we stay there until either TF or READY
- after the first subchannel goes TF, we proactively start another
  subchannel connecting, just like we do after a second subchannel
  reports TF, to ensure that we don't stay in CONNECTING indefinitely if
  we aren't getting any new picks
- always return ring hash's picker, regardless of connectivity state
- update the subchannel connectivity state seen by the picker upon
  subchannel list creation
- start proactive subchannel connection attempt upon subchannel list
  creation if needed

* ring_hash: fix connectivity state seen by aggregation and picker

* fix obiwan error

* swap the order of ring_hash aggregation rules 3 and 4

* restore original test

* refactor connection injector QueuedAttempt code

* add test showing that ring_hash will continue connecting without picks

* clang-format

* don't actually need seen_failure_since_ready_ anymore

* fix TSAN problem

* address code review comments

Co-authored-by: Mark D. Roth <roth@google.com>
2022-07-11 09:37:02 -07:00
..
xds priority and ring_hash LBs: fix interactions when using ring_hash under priority (#29332) (#30253) 2022-07-11 09:37:02 -07:00
BUILD Second attempt: implement ORCA RPC service for OOB backend metric reporting (#29352) 2022-04-08 11:12:18 -07:00
admin_services_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
async_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
cfstream_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
channelz_service_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
client_callback_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
client_crash_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
client_crash_test_server.cc Reintroduce: Avoid fully qualifying namespaces (and add check) (#28917) 2022-02-18 16:18:54 -08:00
client_interceptors_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
client_lb_end2end_test.cc priority and ring_hash LBs: fix interactions when using ring_hash under priority (#29332) (#30253) 2022-07-11 09:37:02 -07:00
connection_delay_injector.cc priority and ring_hash LBs: fix interactions when using ring_hash under priority (#29332) (#30253) 2022-07-11 09:37:02 -07:00
connection_delay_injector.h priority and ring_hash LBs: fix interactions when using ring_hash under priority (#29332) (#30253) 2022-07-11 09:37:02 -07:00
context_allocator_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
counted_service.h Revert "Revert "start splitting up xds_end2end_test (#27702)" (#27725)" (#27726) 2021-10-14 11:41:45 -07:00
delegating_channel_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
exception_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
filter_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
flaky_network_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
generic_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
grpc_authz_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
grpclb_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
health_service_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
hybrid_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
interceptors_util.cc De-experimentalize C++ callback API (#25728) 2021-05-27 14:55:25 -07:00
interceptors_util.h Adjust include order per style guide (#27175) 2021-09-08 12:14:44 -07:00
message_allocator_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
mock_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
nonblocking_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
orca_service_end2end_test.cc Second attempt: implement ORCA RPC service for OOB backend metric reporting (#29352) 2022-04-08 11:12:18 -07:00
port_sharing_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
proto_server_reflection_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
raw_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
rls_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
rls_server.cc xDS RLS implementation (#29200) 2022-03-23 21:23:34 -07:00
rls_server.h xDS RLS implementation (#29200) 2022-03-23 21:23:34 -07:00
server_builder_plugin_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
server_crash_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
server_crash_test_client.cc Adjust include order per style guide (#27175) 2021-09-08 12:14:44 -07:00
server_early_return_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
server_interceptors_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
server_load_reporting_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
service_config_end2end_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
shutdown_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
streaming_throughput_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
test_health_check_service_impl.cc Reintroduce: Avoid fully qualifying namespaces (and add check) (#28917) 2022-02-18 16:18:54 -08:00
test_health_check_service_impl.h Replaced grpc::string with std::string 2020-06-29 17:56:36 -07:00
test_service_impl.cc Reintroduce: Avoid fully qualifying namespaces (and add check) (#28917) 2022-02-18 16:18:54 -08:00
test_service_impl.h Reintroduce: Avoid fully qualifying namespaces (and add check) (#28917) 2022-02-18 16:18:54 -08:00
thread_stress_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
time_change_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
tls_key_export_test.cc Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00