-
Notifications
You must be signed in to change notification settings - Fork 12
Replace the pool when reopening. #182
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
Conversation
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.
Pull Request Overview
This PR backports changes that replace the connection pool when reopening after closure. The primary goal is to ensure that pools are properly reset to a clean state when reopened, preventing potential issues with stale connections or corrupted pool state.
- Stores pool configuration and stats exporter references to enable pool recreation
- Replaces the ConnPool instance with a new one during the Close() operation
- Refactors stats registration to use a separate StatsExporter that can be reassigned to new pool instances
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| go/vt/vttablet/tabletserver/connpool/pool.go | Stores config and statsExporter, recreates ConnPool on close |
| go/vt/dbconnpool/connection_pool.go | Similar changes to store config/statsExporter and recreate pool on close |
| go/pools/smartconnpool/pool_test.go | Simplifies test assertions for pool closing behavior |
| go/pools/smartconnpool/pool.go | Adds pool state management and refactors stats registration |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
Signed-off-by: Arthur Schreiber <[email protected]>
Signed-off-by: Arthur Schreiber <[email protected]>
Signed-off-by: Mohamed Hamza <[email protected]>
When closing the pool, there is a race condition between the closing of the `close` channel in `CloseWithContext`, and the `maybeStarving` worker closing it. We'll remove the close in `CloseWithContext` and allow the worker to close it on its next run. Signed-off-by: Mohamed Hamza <[email protected]>
Signed-off-by: Mohamed Hamza <[email protected]>
closing and normal operations Signed-off-by: Mohamed Hamza <[email protected]>
Signed-off-by: Mohamed Hamza <[email protected]>
Signed-off-by: Mohamed Hamza <[email protected]>
Signed-off-by: Mohamed Hamza <[email protected]>
f5f012e to
bc91d02
Compare
Description
This is a backport of vitessio#18530
Related Issue(s)
Checklist
Deployment Notes