[infinispan-issues] [JBoss JIRA] (ISPN-4706) Executing a GET throws "Failure to marshal argument(s)"

Sanne Grinovero (JIRA) issues at jboss.org
Fri Sep 12 11:37:19 EDT 2014


    [ https://issues.jboss.org/browse/ISPN-4706?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13001939#comment-13001939 ] 

Sanne Grinovero commented on ISPN-4706:
---------------------------------------

Sorry I replied on github, missed this one:
 https://github.com/infinispan/infinispan/pull/2857#discussion_r17477208

Essentially, the node wasn't shutting down: the *null* is a valid return at runtime for all the Externalizers which we didn't add in Infinispan (so for all those provided by JBMarshaller directly).
The thread was interrupted though.. but aborting marshaller at this point was failing to return the TimeOut error to the caller node, delaying the user thread considerably (and logging a misleading error as there is no shutdown involved).

> Executing a GET throws "Failure to marshal argument(s)"
> -------------------------------------------------------
>
>                 Key: ISPN-4706
>                 URL: https://issues.jboss.org/browse/ISPN-4706
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 6.0.2.Final, 7.0.0.Beta1
>            Reporter: Sanne Grinovero
>            Assignee: Sanne Grinovero
>            Priority: Critical
>             Fix For: 7.0.0.Beta2, 7.0.0.Final
>
>         Attachments: log4j-output.log
>
>
> Having a moderate load doing various GET operations, when *another* node is leaving all operations fail:
> {noformat}2014-09-10 01:31:19,963 ERROR [InvocationContextInterceptor] (testng-IndexManagerStressTest-3) ISPN000136: Execution error
> org.infinispan.commons.CacheException: java.lang.RuntimeException: Failure to marshal argument(s)
> 	at org.infinispan.commons.util.Util.rewrapAsCacheException(Util.java:655)
> 	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:141)
> 	at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:539)
> 	at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:281)
> 	at org.infinispan.interceptors.distribution.BaseDistributionInterceptor.invokeClusterGetCommandRemotely(BaseDistributionInterceptor.java:158)
> 	at org.infinispan.interceptors.distribution.BaseDistributionInterceptor.retrieveFromRemoteSource(BaseDistributionInterceptor.java:146)
> 	at org.infinispan.interceptors.distribution.NonTxDistributionInterceptor.remoteGetCacheEntry(NonTxDistributionInterceptor.java:155)
> 	at org.infinispan.interceptors.distribution.NonTxDistributionInterceptor.visitGetKeyValueCommand(NonTxDistributionInterceptor.java:48)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> 	at org.infinispan.interceptors.EntryWrappingInterceptor.visitGetKeyValueCommand(EntryWrappingInterceptor.java:129)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> 	at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitGetKeyValueCommand(NonTransactionalLockingInterceptor.java:32)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> 	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112)
> 	at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:75)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> 	at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112)
> 	at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:75)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> 	at org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:217)
> 	at org.infinispan.statetransfer.StateTransferInterceptor.handleDefault(StateTransferInterceptor.java:201)
> 	at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:75)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> 	at org.infinispan.interceptors.CacheMgmtInterceptor.visitGetKeyValueCommand(CacheMgmtInterceptor.java:92)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:108)
> 	at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:71)
> 	at org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:75)
> 	at org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:44)
> 	at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333)
> 	at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:392)
> 	at org.infinispan.cache.impl.DecoratedCache.get(DecoratedCache.java:400)
> 	at org.infinispan.lucene.impl.SingleChunkIndexInput.<init>(SingleChunkIndexInput.java:26)
> 	at org.infinispan.lucene.impl.DirectoryLuceneV4.openInput(DirectoryLuceneV4.java:98)
> 	at org.apache.lucene.store.Directory.openChecksumInput(Directory.java:114)
> 	at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:329)
> 	at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:416)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:864)
> 	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:710)
> 	at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:412)
> 	at org.apache.lucene.index.StandardDirectoryReader.isCurrent(StandardDirectoryReader.java:347)
> 	at org.apache.lucene.index.StandardDirectoryReader.doOpenNoWriter(StandardDirectoryReader.java:301)
> 	at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:264)
> 	at org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:252)
> 	at org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:171)
> 	at org.hibernate.search.indexes.impl.SharingBufferReaderProvider$PerDirectoryLatestReader.refreshAndGet(SharingBufferReaderProvider.java:238)
> 	at org.hibernate.search.indexes.impl.SharingBufferReaderProvider.openIndexReader(SharingBufferReaderProvider.java:72)
> 	at org.hibernate.search.indexes.impl.SharingBufferReaderProvider.openIndexReader(SharingBufferReaderProvider.java:34)
> 	at org.hibernate.search.reader.impl.MultiReaderFactory.openReader(MultiReaderFactory.java:36)
> 	at org.hibernate.search.query.engine.impl.HSQueryImpl.buildSearcher(HSQueryImpl.java:617)
> 	at org.hibernate.search.query.engine.impl.HSQueryImpl.queryResultSize(HSQueryImpl.java:330)
> 	at org.infinispan.query.impl.CacheQueryImpl.getResultSize(CacheQueryImpl.java:86)
> 	at org.infinispan.query.distributed.IndexManagerStressTest.verifyQueryState(IndexManagerStressTest.java:270)
> 	at org.infinispan.query.distributed.IndexManagerStressTest.assertIndexStateIsEventuallyConsistent(IndexManagerStressTest.java:232)
> 	at org.infinispan.query.distributed.IndexManagerStressTest$UserThread.run(IndexManagerStressTest.java:152)
> 	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> 	at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: Failure to marshal argument(s)
> 	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.marshallCall(CommandAwareRpcDispatcher.java:354)
> 	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processCalls(CommandAwareRpcDispatcher.java:421)
> 	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommands(CommandAwareRpcDispatcher.java:132)
> 	... 65 more
> Caused by: java.lang.InterruptedException: ISPN000239: Cache manager is shutting down, so type write externalizer for type=java.lang.Boolean cannot be resolved. Interruption being pushed up.
> 	at org.infinispan.marshall.core.ExternalizerTable.getObjectWriter(ExternalizerTable.java:176)
> 	at org.infinispan.marshall.core.JBossMarshaller$ExternalizerTableProxy.getObjectWriter(JBossMarshaller.java:143)
> 	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:138)
> 	at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
> 	at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
> 	at org.infinispan.marshall.exts.ReplicableCommandExternalizer.writeCommandParameters(ReplicableCommandExternalizer.java:58)
> 	at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.marshallParameters(CacheRpcCommandExternalizer.java:125)
> 	at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.writeObject(CacheRpcCommandExternalizer.java:109)
> 	at org.infinispan.marshall.exts.CacheRpcCommandExternalizer.writeObject(CacheRpcCommandExternalizer.java:65)
> 	at org.infinispan.marshall.core.ExternalizerTable$ExternalizerAdapter.writeObject(ExternalizerTable.java:415)
> 	at org.jboss.marshalling.river.RiverMarshaller.doWriteObject(RiverMarshaller.java:144)
> 	at org.jboss.marshalling.AbstractObjectOutput.writeObject(AbstractObjectOutput.java:58)
> 	at org.jboss.marshalling.AbstractMarshaller.writeObject(AbstractMarshaller.java:111)
> 	at org.infinispan.commons.marshall.jboss.AbstractJBossMarshaller.objectToObjectStream(AbstractJBossMarshaller.java:73)
> 	at org.infinispan.marshall.core.VersionAwareMarshaller.objectToBuffer(VersionAwareMarshaller.java:77)
> 	at org.infinispan.commons.marshall.AbstractMarshaller.objectToBuffer(AbstractMarshaller.java:41)
> 	at org.infinispan.commons.marshall.AbstractDelegatingMarshaller.objectToBuffer(AbstractDelegatingMarshaller.java:85)
> 	at org.infinispan.remoting.transport.jgroups.MarshallerAdapter.objectToBuffer(MarshallerAdapter.java:23)
> 	at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.marshallCall(CommandAwareRpcDispatcher.java:352)
> 	... 67 more
> Caused by: an exception which occurred:
> 	in object java.lang.Boolean at 4d5
> 	in object org.infinispan.commands.remote.ClusteredGetCommand at 20ef3c0f{noformat}



--
This message was sent by Atlassian JIRA
(v6.3.1#6329)


More information about the infinispan-issues mailing list