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.
See #2453
We added a lock to
DialHook
, butProcessHook
,ProcessPipelineHook
are still not thread-safe.If the
Options.MinIdleConns
parameter is set, go-redis will create a network connection asynchronously, and there may be a data race (hooks.dial) with theAddHook()
API, and even a part of the network connection is created before theAddHook
operation.We only need to pay for the overhead of the read lock for the DialHook.