mirror of
https://github.com/fluencelabs/redis
synced 2025-04-01 15:21:03 +00:00
Cluster: fix Lua scripts replication to slave nodes.
This commit is contained in:
parent
94030fa4d7
commit
2f4240b9d9
@ -2199,6 +2199,8 @@ int processCommand(redisClient *c) {
|
|||||||
* 2) The command has no key arguments. */
|
* 2) The command has no key arguments. */
|
||||||
if (server.cluster_enabled &&
|
if (server.cluster_enabled &&
|
||||||
!(c->flags & REDIS_MASTER) &&
|
!(c->flags & REDIS_MASTER) &&
|
||||||
|
!(c->flags & REDIS_LUA_CLIENT &&
|
||||||
|
server.lua_caller->flags & REDIS_MASTER) &&
|
||||||
!(c->cmd->getkeys_proc == NULL && c->cmd->firstkey == 0))
|
!(c->cmd->getkeys_proc == NULL && c->cmd->firstkey == 0))
|
||||||
{
|
{
|
||||||
int hashslot;
|
int hashslot;
|
||||||
|
@ -357,8 +357,9 @@ int luaRedisGenericCommand(lua_State *lua, int raise_error) {
|
|||||||
if (cmd->flags & REDIS_CMD_WRITE) server.lua_write_dirty = 1;
|
if (cmd->flags & REDIS_CMD_WRITE) server.lua_write_dirty = 1;
|
||||||
|
|
||||||
/* If this is a Redis Cluster node, we need to make sure Lua is not
|
/* If this is a Redis Cluster node, we need to make sure Lua is not
|
||||||
* trying to access non-local keys. */
|
* trying to access non-local keys, with the exception of commands
|
||||||
if (server.cluster_enabled) {
|
* received from our master. */
|
||||||
|
if (server.cluster_enabled && !(server.lua_caller->flags & REDIS_MASTER)) {
|
||||||
/* Duplicate relevant flags in the lua client. */
|
/* Duplicate relevant flags in the lua client. */
|
||||||
c->flags &= ~(REDIS_READONLY|REDIS_ASKING);
|
c->flags &= ~(REDIS_READONLY|REDIS_ASKING);
|
||||||
c->flags |= server.lua_caller->flags & (REDIS_READONLY|REDIS_ASKING);
|
c->flags |= server.lua_caller->flags & (REDIS_READONLY|REDIS_ASKING);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user