Fix parsing of the is_master attribute in the URL#3367
Open
JackiLin wants to merge 8 commits intoredis:masterfrom
Open
Fix parsing of the is_master attribute in the URL#3367JackiLin wants to merge 8 commits intoredis:masterfrom
JackiLin wants to merge 8 commits intoredis:masterfrom
Conversation
Collaborator
|
@JackiLin Thanks for you contribution! I would ask you to provide a test case |
Author
Is it OK to add test cases like this |
Contributor
|
This pull request has been automatically marked as stale due to inactivity. |
petyaslavova
approved these changes
Mar 24, 2026
petyaslavova
requested changes
Mar 24, 2026
Collaborator
petyaslavova
left a comment
There was a problem hiding this comment.
Hi @JackiLin,
I tried to complete this PR, but it seems that I don't have write permissions to your branch.
The fixed test looks like this:
def test_ismaster_querystring(self):
pool = redis.ConnectionPool.from_url("redis://localhost/1?is_master=0")
assert pool.connection_class == redis.Connection
assert pool.connection_kwargs == {
"host": "localhost",
"db": 1,
"is_master": False,
}
pool = redis.ConnectionPool.from_url("redis://localhost/1?is_master=false")
assert pool.connection_class == redis.Connection
assert pool.connection_kwargs == {
"host": "localhost",
"db": 1,
"is_master": False,
}
Can you also fix the linters?
Thanks!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Pull Request check-list
Please make sure to review and check all of these items:
NOTE: these things are not required to open a PR and can be done
afterwards / while the PR is open.
Description of change
Fixed the parsing of the is_master attribute in the Redis URL.
When the Redis URL is 'redis://redis-master/1?is_master=0', it is supposed to find the slave node of redis-master for read operations. However, since is_master was parsed as '0' and not correctly interpreted as False, it failed to use the slave node.
I encountered this issue when trying to implement read-write separation using SentinelConnectionPool.
Note
Low Risk
Low risk: narrow change to URL query parsing plus a targeted regression test; behavior only changes when
is_masteris provided in the connection URL.Overview
Fixes URL query parsing so the
is_masteroption is type-cast viato_bool(e.g.,is_master=0becomesFalse) when building connection pools fromfrom_url, enabling Sentinel pools to correctly target replica nodes for read operations.Adds a regression test in
tests/test_connection_pool.pycoveringfrom_urlbehavior when specifying the master/replica selector in the query string.Written by Cursor Bugbot for commit 9f15d0a. This will update automatically on new commits. Configure here.