Merge pull request #3152 from be-hase/fix/check_open_slots

Fix redis-trib.rb
This commit is contained in:
Salvatore Sanfilippo 2016-05-05 08:56:28 +02:00
commit 09153b9127

View File

@ -407,7 +407,8 @@ class RedisTrib
cluster_error \
"[WARNING] Node #{n} has slots in migrating state (#{n.info[:migrating].keys.join(",")})."
open_slots += n.info[:migrating].keys
elsif n.info[:importing].size > 0
end
if n.info[:importing].size > 0
cluster_error \
"[WARNING] Node #{n} has slots in importing state (#{n.info[:importing].keys.join(",")})."
open_slots += n.info[:importing].keys
@ -567,17 +568,17 @@ class RedisTrib
# Use ADDSLOTS to assign the slot.
puts "*** Configuring #{owner} as the slot owner"
n.r.cluster("setslot",slot,"stable")
n.r.cluster("addslot",slot)
owner.r.cluster("setslot",slot,"stable")
owner.r.cluster("addslots",slot)
# Make sure this information will propagate. Not strictly needed
# since there is no past owner, so all the other nodes will accept
# whatever epoch this node will claim the slot with.
n.r.cluster("bumpepoch")
owner.r.cluster("bumpepoch")
# Remove the owner from the list of migrating/importing
# nodes.
migrating.delete(n)
importing.delete(n)
migrating.delete(owner)
importing.delete(owner)
end
# If there are multiple owners of the slot, we need to fix it