[jboss-jira] [JBoss JIRA] Commented: (JBCACHE-1310) Marshalling failure with optimistic PREPARE
Manik Surtani (JIRA)
jira-events at lists.jboss.org
Tue Mar 18 20:50:50 EDT 2008
[ http://jira.jboss.com/jira/browse/JBCACHE-1310?page=comments#action_12403515 ]
Manik Surtani commented on JBCACHE-1310:
----------------------------------------
Hmm. I can see where, in the interceptor, this can be an issue but can't for the life of me reproduce this. I still want this reproducible in a unit test before I attempt to fix the obvious flaw I see in the OptimisticReplicationInterceptor though.
> 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: Replication, Optimistic Locking
> Affects Versions: 2.1.0.GA
> Reporter: Brian Stansberry
> Assigned To: Manik Surtani
> Priority: Critical
> Fix For: 2.2.0.GA
>
> Attachments: JBCACHE-1310.log
>
>
> 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
More information about the jboss-jira
mailing list