[
https://issues.jboss.org/browse/ISPN-976?page=com.atlassian.jira.plugin.s...
]
Mircea Markus updated ISPN-976:
-------------------------------
Description:
Specifically, the problem is with getStateProvidersOnLeave.
Assume you have nodes 1, 2, and 4.
Now node 3 joins.
This method will iterate over each address and will skip the joiner (node3).
For the remaining nodes it will call getOwners
e.g. - getOwners(node1), getOwners(node2), getOwners(node3)
This method will always begin by adding the first node in the tailMap which is the address
that is being iterated over. Since numOwners is set to 1 it skips the while loop and
returns the result.
So...
getOwners(1) returns {node1}
getOwners(2) returns {node2}
getOwners(4) returns {node4}
Now we return to getStateProvidersOnLeave
It now checks to see if the result contains the joiner (node3). However, it can never
contain the joiner.
was:
Problem is fully described here:
http://community.jboss.org/message/590754#590754
Setting prio to minor as there's not a lot of sense in having numOwners=1 and TACH.
TopologyAwareConsistentHash does not work when numOwners=1 and
rehashing
-------------------------------------------------------------------------
Key: ISPN-976
URL:
https://issues.jboss.org/browse/ISPN-976
Project: Infinispan
Issue Type: Bug
Reporter: Mircea Markus
Assignee: Mircea Markus
Priority: Minor
Specifically, the problem is with getStateProvidersOnLeave.
Assume you have nodes 1, 2, and 4.
Now node 3 joins.
This method will iterate over each address and will skip the joiner (node3).
For the remaining nodes it will call getOwners
e.g. - getOwners(node1), getOwners(node2), getOwners(node3)
This method will always begin by adding the first node in the tailMap which is the
address that is being iterated over. Since numOwners is set to 1 it skips the while loop
and returns the result.
So...
getOwners(1) returns {node1}
getOwners(2) returns {node2}
getOwners(4) returns {node4}
Now we return to getStateProvidersOnLeave
It now checks to see if the result contains the joiner (node3). However, it can never
contain the joiner.
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira