Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
634c64dd
Commit
634c64dd
authored
Jun 27, 2017
by
Salvatore Sanfilippo
Committed by
GitHub
Jun 27, 2017
Browse files
Merge pull request #4075 from sgn1/brpop_keys
Fix Issues in blocking commands in cluster mode.
parents
365dd037
f85f36f5
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/cluster.c
View file @
634c64dd
...
@@ -5418,8 +5418,9 @@ int clusterRedirectBlockedClientIfNeeded(client *c) {
...
@@ -5418,8 +5418,9 @@ int clusterRedirectBlockedClientIfNeeded(client *c) {
return
1
;
return
1
;
}
}
/* All keys must belong to the same slot, so check first key only. */
di
=
dictGetIterator
(
c
->
bpop
.
keys
);
di
=
dictGetIterator
(
c
->
bpop
.
keys
);
while
((
de
=
dictNext
(
di
))
!=
NULL
)
{
if
((
de
=
dictNext
(
di
))
!=
NULL
)
{
robj
*
key
=
dictGetKey
(
de
);
robj
*
key
=
dictGetKey
(
de
);
int
slot
=
keyHashSlot
((
char
*
)
key
->
ptr
,
sdslen
(
key
->
ptr
));
int
slot
=
keyHashSlot
((
char
*
)
key
->
ptr
,
sdslen
(
key
->
ptr
));
clusterNode
*
node
=
server
.
cluster
->
slots
[
slot
];
clusterNode
*
node
=
server
.
cluster
->
slots
[
slot
];
...
@@ -5437,6 +5438,7 @@ int clusterRedirectBlockedClientIfNeeded(client *c) {
...
@@ -5437,6 +5438,7 @@ int clusterRedirectBlockedClientIfNeeded(client *c) {
clusterRedirectClient
(
c
,
node
,
slot
,
clusterRedirectClient
(
c
,
node
,
slot
,
CLUSTER_REDIR_MOVED
);
CLUSTER_REDIR_MOVED
);
}
}
dictReleaseIterator
(
di
);
return
1
;
return
1
;
}
}
}
}
...
...
src/server.c
View file @
634c64dd
...
@@ -152,7 +152,7 @@ struct redisCommand redisCommandTable[] = {
...
@@ -152,7 +152,7 @@ struct redisCommand redisCommandTable[] = {
{
"linsert"
,
linsertCommand
,
5
,
"wm"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"linsert"
,
linsertCommand
,
5
,
"wm"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"rpop"
,
rpopCommand
,
2
,
"wF"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"rpop"
,
rpopCommand
,
2
,
"wF"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"lpop"
,
lpopCommand
,
2
,
"wF"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"lpop"
,
lpopCommand
,
2
,
"wF"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"brpop"
,
brpopCommand
,
-
3
,
"ws"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"brpop"
,
brpopCommand
,
-
3
,
"ws"
,
0
,
NULL
,
1
,
-
2
,
1
,
0
,
0
},
{
"brpoplpush"
,
brpoplpushCommand
,
4
,
"wms"
,
0
,
NULL
,
1
,
2
,
1
,
0
,
0
},
{
"brpoplpush"
,
brpoplpushCommand
,
4
,
"wms"
,
0
,
NULL
,
1
,
2
,
1
,
0
,
0
},
{
"blpop"
,
blpopCommand
,
-
3
,
"ws"
,
0
,
NULL
,
1
,
-
2
,
1
,
0
,
0
},
{
"blpop"
,
blpopCommand
,
-
3
,
"ws"
,
0
,
NULL
,
1
,
-
2
,
1
,
0
,
0
},
{
"llen"
,
llenCommand
,
2
,
"rF"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
{
"llen"
,
llenCommand
,
2
,
"rF"
,
0
,
NULL
,
1
,
1
,
1
,
0
,
0
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment