-
Notifications
You must be signed in to change notification settings - Fork 558
Add a pre-check step for creating INDIS connections #1100
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
Add a pre-check step for creating INDIS connections #1100
Conversation
| return; | ||
| } | ||
|
|
||
| if (!preCheckForIndisConnection()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pre-check should be run only ONCE at startup, instead of in every startRpcStreamLocal (every reconnect). After #1093 is merged, there will be a start() method in XdsClientImpl, so you can add it there (cleaner).
Or add it to startRpcStream().
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
btw, this precheck shouldn't be run on the executor but should be blocking xds client startup, so that later we can control whether to fail the app startup if the precheck fails.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah. I add some logic to make sure the precheck will only run one-time
PR description
During the INDIS migration, we observed that many clients encountered various issues when connecting to INDIS. Troubleshooting these problems often consumed significant time from both customers and the INDIS team.
This PR addresses that pain point by introducing a pre-check function that runs before attempting to establish an INDIS connection. The pre-check introduces no side effects—it will not alter or break the normal workflow. Instead, it provides clear log messages that indicate which errors might prevent a successful INDIS connection.
With these logs, customers and the INDIS team can more easily identify root causes, accelerating troubleshooting and enabling customers to resolve issues on their own.
🚨 Pre-Check Failure Scenarios
Java version too lowNetwork connectivity issuesgRPC health check failuresMissing dependenciesTest Done
[✅]manully test
case1: Everything goes well:
case2: NACL issue: