integration: direct node connectivity test #1189
Open
+182
−90
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
I noticed that we lacked a test that requires direct connectivity to all nodes in the cluster in order to pass. Other tests would often succeed even if only one node (the initial contact point) was directly reachable.
The issue has manifested in testing serverless cloud why working on rustls support: tests would pass even with address translation disabled...
Side note
An example of a test which has exercised direct connectivity to all nodes is
tablets.rs
, yet it could be enabled only for non-cloud case, as it uses the proxy.Solution
I wrote a test that iterates though all targets (pairs
(node, shard)
) and sends a request directly to them (using a load balancing policy that produces singleton query plans).Bonus
I extracted and refactored some utils from
tablets.rs
toutils.rs
, so that they can be used by other tests.Pre-review checklist
[ ] I have provided docstrings for the public items that I want to introduce.[ ] I have adjusted the documentation in./docs/source/
.[ ] I added appropriateFixes:
annotations to PR description.