]
Mircea Markus updated ISPN-2382:
--------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request:
Transaction boundary commands are not forwarded during state transfer
----------------------------------------------------------------------
Key: ISPN-2382
URL:
https://issues.jboss.org/browse/ISPN-2382
Project: Infinispan
Issue Type: Feature Request
Components: State transfer
Affects Versions: 5.2.0.Beta1
Reporter: Mircea Markus
Assignee: Mircea Markus
Priority: Critical
Fix For: 5.2.0.CR1
Two issues:
1. StateTransferInterceptor.handleTxCommand, when invoking handleTopologyAffectedCommand
internally, wrongly calculates the 2nd param of the invocation
2. StateTransferInterceptor.handleTopologyAffectedCommand
This logic filters out commands that should be forwarded (e.g. late commands that
happened before state transfer completed):
{code:java}
if (pendingCh != null && cmdTopologyId < localTopologyId + 1) {
ConsistentHash writeCh = cacheTopology.getWriteConsistentHash();
Set<Object> affectedKeys = getAffectedKeys(ctx, command);
Set<Address> newTargets = writeCh.locateAllOwners(affectedKeys);
newTargets.remove(rpcManager.getAddress());
if (!newTargets.isEmpty()) {
// Update the topology id to prevent cycles
command.setTopologyId(localTopologyId);
log.tracef("Forwarding command %s to new targets %s",
command, newTargets);
// TODO find a way to forward the command async if it was received
async
rpcManager.invokeRemotely(newTargets, command, true, false);
}
}
{code}
The if above should be removed.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: