[infinispan-issues] [JBoss JIRA] (ISPN-2382) Transaction boundary commands are not forwarded during state transfer

Mircea Markus (JIRA) jira-events at lists.jboss.org
Fri Oct 12 04:49:03 EDT 2012


     [ https://issues.jboss.org/browse/ISPN-2382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mircea Markus updated ISPN-2382:
--------------------------------

              Status: Pull Request Sent  (was: Open)
    Git Pull Request: https://github.com/infinispan/infinispan/pull/1380

    
> 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: http://www.atlassian.com/software/jira


More information about the infinispan-issues mailing list