grpc/test/cpp
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
..
client Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
cocoapods Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
codegen Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
common Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
end2end priority and ring_hash LBs: fix interactions when using ring_hash under priority (#29332) (#30253) 2022-07-11 09:37:02 -07:00
ext/filters/census Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
grpclb Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
interop Improve logging in interop soak test and add a flag to limit QPS (#29357) 2022-04-08 21:16:23 -07:00
ios Cleanup of ObjC test scripts (#28333) 2021-12-14 09:22:04 +01:00
microbenchmarks Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
naming Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
performance Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
qps Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
security Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
server Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
test Change main argument of call promise to be a struct (#29019) 2022-03-14 10:05:01 -07:00
thread_manager Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
util Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00
README-iOS.md Refactor end2end tests to exercise each EventEngine (#29202) 2022-03-30 15:43:05 -07:00