[
https://issues.jboss.org/browse/ISPN-7554?page=com.atlassian.jira.plugin....
]
Dan Berindei commented on ISPN-7554:
------------------------------------
Example log:
{noformat}
15:22:12,525 INFO (testng-Test:[]) [JGroupsTransport] ISPN000094: Received new cluster
view for channel ISPN: [Test-NodeM-31573|3] (4) [Test-NodeM-31573, Test-NodeN-49223,
Test-NodeO-46628, Test-NodeP-46363]
15:22:12,683 TRACE (ForkThread-1,Test:[cluster-listener]) [StateTransferManagerImpl]
StateTransferManager of cache cluster-listener on node Test-NodeP-46363 received initial
topology CacheTopology{id=5, rebalanceId=3, currentCH=DefaultConsistentHash{ns=256, owners
= (3)[Test-NodeM-31573: 89+82, Test-NodeN-49223: 90+84, Test-NodeO-46628: 77+90]},
pendingCH=null, unionCH=null, actualMembers=[Test-NodeM-31573, Test-NodeN-49223,
Test-NodeO-46628], persistentUUIDs=[bac87619-e272-4144-a501-c6f125bb3651,
24a62a07-8c3d-466c-9e2c-c23bdb13052d, 901123cc-cd87-4d75-8cd8-9e0da48fede8]}
15:22:12,683 TRACE (ForkThread-1,Test:[cluster-listener]) [JGroupsTransport]
dests=[Test-NodeM-31573], command=CacheTopologyControlCommand{cache=cluster-listener,
type=POLICY_GET_STATUS, sender=Test-NodeP-46363, joinInfo=null, topologyId=0,
rebalanceId=0, currentCH=null, pendingCH=null, availabilityMode=null, actualMembers=null,
throwable=null, viewId=4}, mode=SYNCHRONOUS, timeout=240000
15:22:12,683 TRACE (ForkThread-1,Test:[cluster-listener]) [LocalTopologyManagerImpl]
Coordinator left the cluster while querying rebalancing status, retrying
15:22:12,683 TRACE (ForkThread-1,Test:[cluster-listener]) [JGroupsTransport] Waiting on
view 5 being accepted
15:22:12,691 INFO (jgroups-4,Test-NodeP-46363:[]) [JGroupsTransport] ISPN000094: Received
new cluster view for channel ISPN: [Test-NodeN-49223|4] (3) [Test-NodeN-49223,
Test-NodeO-46628, Test-NodeP-46363]
{noformat}
JGroupsTransport should expose the cluster view information
atomically
----------------------------------------------------------------------
Key: ISPN-7554
URL:
https://issues.jboss.org/browse/ISPN-7554
Project: Infinispan
Issue Type: Bug
Reporter: Dan Berindei
Assignee: Dan Berindei
Currently the view is updated while holding a lock, but reading the view id, members, or
coordinator is done without a lock. This means when a thread sends a request and receives
a {{SuspectException}}, it cannot simply wait for a new view before retrying: the initial
request may have used the latest view, and only the members list could be outdated (even
if read later).
To allow atomically reading the view id and the member list, we should use an immutable
structure similar to {{CacheTopology}}.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)