Skip to content
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

CBG-2901 Port 3.1.0 DCP failover enhancements to main #6213

Merged
merged 4 commits into from
Apr 27, 2023
Merged

Conversation

adamcfraser
Copy link
Collaborator

@adamcfraser adamcfraser commented Apr 25, 2023

CBG-2873 retry on all stream end error types
CBG-2873 Avoid deadlock when attempting to reopen a closed stream
CBG-2880 Cancel timed out gocbcore dcp operations
CBG-2899 Implement cbgt mgrEventHandlers

Integration Tests

bbrks
bbrks previously approved these changes Apr 26, 2023
Re-opening the stream needs to be asynchronous, due to the way the DCPAgent performs locking while reconfiguring memdclients - the old client can't be closed while it has pending StreamObserver.End calls, and our openStream request won't succeed until the old client is closed. Since we've got a relatively small event buffer for processing observer events (10 x 8 workers), a synchronous openStream request will create a deadlock whenever more than 80 vbuckets need to be closed.
When timeouts occur the gocbcore operations must be cancelled to
flush them from the agent's system. Not doing so can result in
handlers being called unexpectedly, e.g. ending up writing to a
channel that is no longer being read from.
OnFeedError is required when using a gocbcore feed to trigger reconnection to a feed after receiving an EOF.
@bbrks bbrks merged commit a8f3b6a into master Apr 27, 2023
@bbrks bbrks deleted the CBG-2901 branch April 27, 2023 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants