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.
Signed-off-by: crowu [email protected]
Description
Vitess assumes the process gets the lock if the error is nil https://github.com/vitessio/vitess/blob/main/go/vt/topo/locks.go
However, consul will return nil error when the context timeout’d before the process get the lock: https://github.com/hashicorp/consul/blob/master/api/lock.go#L185 - which means anyone will get the lock after the context timeout.
This means after the context timeout, everyone that is waiting for the lock will get one
This PR make sure we will raise error if the lost chan returned is nil, we should not assume we have the lock
Related Issue(s)
#8309
Checklist
Deployment Notes