[
http://jira.jboss.com/jira/browse/JBCACHE-1310?page=comments#action_12403372 ]
Manik Surtani commented on JBCACHE-1310:
----------------------------------------
Hmm, I can't seem to recreate this.
Could you give me some more info on this? Are you using a cache loader? And how does it
come to be that the transaction has no modifications - do you (1) start a tx, just do a
bunch of gets, and commit the tx? Or, (2) start the tx, do some gets, and do some
modifications with the cacheModeLocal option, and commit the tx?
Marshalling failure with optimistic PREPARE
-------------------------------------------
Key: JBCACHE-1310
URL:
http://jira.jboss.com/jira/browse/JBCACHE-1310
Project: JBoss Cache
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Optimistic Locking, Replication
Affects Versions: 2.1.0.GA
Reporter: Brian Stansberry
Assigned To: Manik Surtani
Priority: Critical
Fix For: 2.2.0.GA
When an optimistic tx with no modifications commits a replication message is sent, and
the message fails to marshall (using region based marshalling):
17:14:00,901 DEBUG OptimisticReplicationInterceptor:186 - (127.0.0.1:42972): broadcasting
prepare for GlobalTransaction:<127.0.0.1:42972>:568 (0 modifications
17:14:00,902 TRACE OptimisticReplicationInterceptor:94 - Broadcasting call MethodName:
optimisticPrepare; MethodIdInteger: 18; Args:
(GlobalTransaction:<127.0.0.1:42972>:568, [], null, 127.0.0.1:42972, false) to
recipient list null
17:14:00,902 TRACE OptimisticReplicationInterceptor:119 - Setting call recipients to
[127.0.0.1:42972, 127.0.0.1:42973] since the original list of recipients passed in is
null.
17:14:00,903 TRACE RPCManagerImpl:402 - callRemoteMethods(): valid members are
[127.0.0.1:42973] methods: MethodName: _replicate; MethodIdInteger: 13; Args: (MethodName:
optimisticPrepare; MethodIdInteger: 18; Args:
(GlobalTransaction:<127.0.0.1:42972>:568, [], null, 127.0.0.1:42972, false)) Using
OOB? false
17:14:00,903 TRACE InactiveRegionAwareRpcDispatcher:194 - dests=[127.0.0.1:42973],
method_call=MethodName: _replicate; MethodIdInteger: 13; Args: (MethodName:
optimisticPrepare; MethodIdInteger: 18; Args:
(GlobalTransaction:<127.0.0.1:42972>:568, [], null, 127.0.0.1:42972, false)),
mode=2, timeout=20000
17:14:00,904 WARN TxInterceptor:1378 - Caught exception, will now set transaction to
roll back
java.lang.RuntimeException: failure to marshal argument(s)
at org.jgroups.blocks.RpcDispatcher.callRemoteMethods(RpcDispatcher.java:206)
at org.jgroups.blocks.RpcDispatcher.callRemoteMethods(RpcDispatcher.java:179)
at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:412)
at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:355)
at org.jboss.cache.RPCManagerImpl.callRemoteMethods(RPCManagerImpl.java:360)
at
org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:127)
at
org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:88)
at
org.jboss.cache.interceptors.BaseRpcInterceptor.replicateCall(BaseRpcInterceptor.java:83)
at
org.jboss.cache.interceptors.OptimisticReplicationInterceptor.broadcastPrepare(OptimisticReplicationInterceptor.java:191)
at
org.jboss.cache.interceptors.OptimisticReplicationInterceptor.handleOptimisticPrepareMethod(OptimisticReplicationInterceptor.java:80)
at
org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:120)
at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)
at
org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:58)
at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)
at org.jboss.cache.interceptors.TxInterceptor.runPreparePhase(TxInterceptor.java:1018)
at
org.jboss.cache.interceptors.TxInterceptor$LocalSynchronizationHandler.beforeCompletion(TxInterceptor.java:1362)
at
org.jboss.cache.interceptors.OrderedSynchronizationHandler.beforeCompletion(OrderedSynchronizationHandler.java:61)
at
org.jboss.cache.transaction.DummyTransaction.notifyBeforeCompletion(DummyTransaction.java:261)
at org.jboss.cache.transaction.DummyTransaction.commit(DummyTransaction.java:61)
at
org.jboss.cache.transaction.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:78)
at org.jboss.cache.interceptors.TxInterceptor.handleNonTxMethod(TxInterceptor.java:461)
at
org.jboss.cache.interceptors.TxInterceptor.handlePutDataMethod(TxInterceptor.java:275)
at
org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:69)
at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)
at
org.jboss.cache.interceptors.CacheMgmtInterceptor.handlePutData(CacheMgmtInterceptor.java:112)
at
org.jboss.cache.interceptors.CacheMgmtInterceptor.handlePutDataMethod(CacheMgmtInterceptor.java:99)
at
org.jboss.cache.interceptors.MethodDispacherInterceptor.invoke(MethodDispacherInterceptor.java:69)
at org.jboss.cache.interceptors.Interceptor.nextInterceptor(Interceptor.java:111)
at
org.jboss.cache.interceptors.InvocationContextInterceptor.invoke(InvocationContextInterceptor.java:73)
at
org.jboss.cache.invocation.AbstractInvocationDelegate.invoke(AbstractInvocationDelegate.java:123)
at
org.jboss.cache.invocation.AbstractInvocationDelegate.invoke(AbstractInvocationDelegate.java:64)
at
org.jboss.cache.invocation.CacheInvocationDelegate.put(CacheInvocationDelegate.java:453)
at
org.jboss.cache.invocation.NodeInvocationDelegate.addChild(NodeInvocationDelegate.java:308)
at org.jboss.cache.RegionManager.activateRegion(RegionManager.java:420)
at org.jboss.cache.RegionManager.activate(RegionManager.java:335)
at org.jboss.cache.RegionManager.activate(RegionManager.java:298)
at org.jboss.cache.RegionImpl.activate(RegionImpl.java:82)
at
org.hibernate.cache.jbc2.BasicRegionAdapter.activateLocalClusterNode(BasicRegionAdapter.java:98)
at org.hibernate.cache.jbc2.BasicRegionAdapter.<init>(BasicRegionAdapter.java:80)
at
org.hibernate.cache.jbc2.TransactionalDataRegionAdapter.<init>(TransactionalDataRegionAdapter.java:41)
at
org.hibernate.cache.jbc2.collection.CollectionRegionImpl.<init>(CollectionRegionImpl.java:48)
at
org.hibernate.cache.jbc2.JBossCacheRegionFactory.buildCollectionRegion(JBossCacheRegionFactory.java:131)
at
org.hibernate.test.cache.jbc2.collection.AbstractCollectionRegionAccessStrategyTestCase.setUp(AbstractCollectionRegionAccessStrategyTestCase.java:126)
at junit.framework.TestCase.runBare(TestCase.java:125)
at org.hibernate.junit.UnitTestCase.runBare(UnitTestCase.java:63)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.extensions.TestSetup.run(TestSetup.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:290)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:818)
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:546)
at java.util.ArrayList.get(ArrayList.java:321)
at org.jboss.cache.marshall.AbstractMarshaller.extractFqn(AbstractMarshaller.java:128)
at
org.jboss.cache.marshall.AbstractMarshaller.extractFqnFromMethodCall(AbstractMarshaller.java:97)
at
org.jboss.cache.marshall.CacheMarshaller200.extractFqnRegion(CacheMarshaller200.java:257)
at
org.jboss.cache.marshall.CacheMarshaller200.objectToObjectStream(CacheMarshaller200.java:115)
at
org.jboss.cache.marshall.VersionAwareMarshaller.objectToByteBuffer(VersionAwareMarshaller.java:184)
at
org.jboss.cache.marshall.AbstractMarshaller.objectToByteBuffer(AbstractMarshaller.java:71)
at org.jgroups.blocks.RpcDispatcher.callRemoteMethods(RpcDispatcher.java:199)
... 68 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira