]
Mircea Markus updated ISPN-2459:
--------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request:
Rollback not preceded by Prepare sent to remote site
----------------------------------------------------
Key: ISPN-2459
URL:
https://issues.jboss.org/browse/ISPN-2459
Project: Infinispan
Issue Type: Bug
Components: Cross-Site Replication, Transactions
Affects Versions: 5.2.0.Beta3
Reporter: Radim Vansa
Assignee: Mircea Markus
Priority: Critical
Fix For: 5.2.0.CR1, 5.2.0.Final
When a {{TransactionManager.rollback()}} is called under optimistic locking, the
{{RollbackCommand}} is sent to the remote site with backup cache. This makes no sense as
there are no changes to roll back, and furthermore, the command fails in the remote site
as the transaction which is rolled back is not known:
{code}
05:37:00,727 WARN [org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher]
(Incoming-2,global,_edg-perf01-58034:LON) Problems invoking command
SingleRpcCommand{cacheName='nycCache', command=RollbackCommand
{gtx=GlobalTransaction:<c25cba86-1e90-e190-b101-155e93063c9c[T]>:5:local,
cacheName='nycCache', topologyId=-1}}
org.infinispan.CacheException: Couldn't find a local transaction corresponding to
remote transaction
GlobalTransaction:<c25cba86-1e90-e190-b101-155e93063c9c[T]>:5:local
at
org.infinispan.xsite.BackupReceiver$BackupCacheUpdater.completeTransaction(BackupReceiver.java:187)
at
org.infinispan.xsite.BackupReceiver$BackupCacheUpdater.visitRollbackCommand(BackupReceiver.java:178)
at
org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:61)
at
org.infinispan.xsite.BackupReceiver.handleRemoteCommand(BackupReceiver.java:76)
at
org.infinispan.xsite.BackupReceiverRepositoryImpl.handleRemoteCommand(BackupReceiverRepositoryImpl.java:60)
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.executeCommandFromRemoteSite(CommandAwareRpcDispatcher.java:240)
at
org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.handle(CommandAwareRpcDispatcher.java:217)
at
org.jgroups.blocks.RequestCorrelator.handleRequest(RequestCorrelator.java:483)
at
org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:390)
at org.jgroups.blocks.RequestCorrelator.receive(RequestCorrelator.java:248)
at
org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:604)
at org.jgroups.JChannel.up(JChannel.java:670)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1020)
at org.jgroups.protocols.relay.RELAY2.deliver(RELAY2.java:420)
at org.jgroups.protocols.relay.RELAY2.route(RELAY2.java:316)
at org.jgroups.protocols.relay.RELAY2.handleMessage(RELAY2.java:292)
at org.jgroups.protocols.relay.RELAY2.handleRelayMessage(RELAY2.java:272)
at org.jgroups.protocols.relay.Relayer$Bridge.receive(Relayer.java:214)
at org.jgroups.JChannel.invokeCallback(JChannel.java:712)
at org.jgroups.JChannel.up(JChannel.java:673)
at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:1020)
at org.jgroups.protocols.RSVP.up(RSVP.java:188)
at org.jgroups.protocols.FRAG2.up(FRAG2.java:181)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:418)
at org.jgroups.protocols.FlowControl.up(FlowControl.java:400)
at org.jgroups.protocols.pbcast.GMS.up(GMS.java:896)
at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:244)
at org.jgroups.protocols.UNICAST2.handleDataReceived(UNICAST2.java:769)
at org.jgroups.protocols.UNICAST2.up(UNICAST2.java:414)
at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:601)
at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:288)
at org.jgroups.protocols.Discovery.up(Discovery.java:359)
at org.jgroups.protocols.TP.passMessageUp(TP.java:1293)
at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1856)
at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1829)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
{code}
--
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: