[JBoss JIRA] (ISPN-4497) Race condition in LocalLockMergingSegmentReadLocker results in file content being deleted
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-4497?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes updated ISPN-4497:
------------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/2710
> Race condition in LocalLockMergingSegmentReadLocker results in file content being deleted
> -----------------------------------------------------------------------------------------
>
> Key: ISPN-4497
> URL: https://issues.jboss.org/browse/ISPN-4497
> Project: Infinispan
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Lucene Directory
> Affects Versions: 5.2.6.Final
> Reporter: Anuj Shah
> Assignee: Sanne Grinovero
>
> There is a race condition in LocalLockMergingSegmentReadLocker which can lead to more calls delete on the underlying DistributedSegmentReadLocker which results in the file being removed from the caches.
> This happens with three or more threads acquiring and releasing locks on the same file simultaneously:
> # Thread 1 (T1) acquires a lock and creates a {{LocalReadLock}}, call it L1 - the underlying lock is acquired
> # T2 starts to acquire and holds a reference to L1
> # T3 starts to acquire and holds a reference to L1
> # T1 releases - L1 at this stage only has value of 1 - so the underlying lock is released, and L1 is removed from the map
> # T2 continues - finds L1 with value 0 and acquires the underlying lock
> # T3 continues - increments L1 value to 2
> # T2 releases - creates a new {{LocalReadLock}}, L2 - this has zero value so the underlying lock is released, and L2 is removed from the map
> # T3 releases - creates a new {{LocalReadLock}}, L3 - this has zero value so the underlying lock is released, and L3 is removed from the map
> # The final step triggers a real file delete as underlying lock is released one too many times
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
10 years, 6 months
[JBoss JIRA] (ISPN-4518) ConsistentHashFactory needs to be configurable via XML
by Paul Ferraro (JIRA)
Paul Ferraro created ISPN-4518:
----------------------------------
Summary: ConsistentHashFactory needs to be configurable via XML
Key: ISPN-4518
URL: https://issues.jboss.org/browse/ISPN-4518
Project: Infinispan
Issue Type: Enhancement
Security Level: Public (Everyone can see)
Components: Configuration
Affects Versions: 7.0.0.Alpha3
Reporter: Paul Ferraro
Assignee: Galder Zamarreño
Fix For: 7.0.0.Beta1
In the XML parsing changes added in ISPN-3514, I forgot to add ConsistentHashFactory configuration. This is needed in order to be able to have multiple caches with the same consistent hash.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
10 years, 6 months
[JBoss JIRA] (ISPN-4474) ClassCastException with @ClientListener on Cache with compatibility-mode enabled
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-4474?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-4474:
-----------------------------------
Fix Version/s: 7.0.0.Beta1
7.0.0.Final
> ClassCastException with @ClientListener on Cache with compatibility-mode enabled
> --------------------------------------------------------------------------------
>
> Key: ISPN-4474
> URL: https://issues.jboss.org/browse/ISPN-4474
> Project: Infinispan
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Remote Protocols
> Affects Versions: 7.0.0.Alpha4
> Environment: Mac OS X 10.9.2, Oracle HotSpot 1.7.0_55, Infinispan 7.0.0-Snapshot (built from master)
> Reporter: Duncan Doyle
> Assignee: Galder Zamarreño
> Fix For: 7.0.0.Beta1, 7.0.0.Final
>
>
> Adding a @ClientListener over HotRod to a Cache which has compatibility-mode enabled results in a ClassCastException on a put (Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to [B).
> Stacktrace on the HotRod client:
> {code}
> 2014-07-03 01:15:07,000 [INFO] [main] [org.jboss.ddoyle.osc2013.infinispan.demo.client.RemoteCacheClient] INFO Storing key:value pair 'test1:value1' in the cache.
> 2014-07-03 01:15:07,129 [WARN] [main] [org.infinispan.client.hotrod.impl.protocol.Codec20] WARN ISPN004005: Error received from the server: io.netty.handler.codec.DecoderException: org.infinispan.server.hotrod.HotRodException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Duncans-MacBook-Pro-39969, see cause for remote stack trace
> Exception in thread "main" org.infinispan.client.hotrod.exceptions.HotRodClientException:Request for message id[4] returned server error (status=0x85): io.netty.handler.codec.DecoderException: org.infinispan.server.hotrod.HotRodException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Duncans-MacBook-Pro-39969, see cause for remote stack trace
> at org.infinispan.client.hotrod.impl.protocol.Codec20.checkForErrorsInResponseStatus(Codec20.java:285)
> at org.infinispan.client.hotrod.impl.protocol.Codec20.readPartialHeader(Codec20.java:85)
> at org.infinispan.client.hotrod.impl.protocol.Codec20.readHeader(Codec20.java:71)
> at org.infinispan.client.hotrod.impl.operations.HotRodOperation.readHeaderAndValidate(HotRodOperation.java:56)
> at org.infinispan.client.hotrod.impl.operations.AbstractKeyValueOperation.sendPutOperation(AbstractKeyValueOperation.java:50)
> at org.infinispan.client.hotrod.impl.operations.PutOperation.executeOperation(PutOperation.java:30)
> at org.infinispan.client.hotrod.impl.operations.PutOperation.executeOperation(PutOperation.java:19)
> at org.infinispan.client.hotrod.impl.operations.RetryOnFailureOperation.execute(RetryOnFailureOperation.java:49)
> at org.infinispan.client.hotrod.impl.RemoteCacheImpl.put(RemoteCacheImpl.java:237)
> at org.infinispan.client.hotrod.impl.RemoteCacheSupport.put(RemoteCacheSupport.java:79)
> at org.jboss.ddoyle.osc2013.infinispan.demo.client.RemoteCacheClient.put(RemoteCacheClient.java:79)
> at org.jboss.ddoyle.osc2013.infinispan.demo.client.RemoteCacheClient.main(RemoteCacheClient.java:55)
> {code}
> Stacktrace on the ISPN server:
> {code}
> 01:15:07,090 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (HotRodServerWorker-3-2) ISPN000136: Execution error: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Duncans-MacBook-Pro-39969, see cause for remote stack trace
> at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:41) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:362) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:165) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:526) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:280) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.distribution.BaseDistributionInterceptor.handleNonTxWriteCommand(BaseDistributionInterceptor.java:243) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.distribution.NonTxDistributionInterceptor.visitPutKeyValueCommand(NonTxDistributionInterceptor.java:72) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:346) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:434) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:168) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:46) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:218) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:141) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:148) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:134) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.compat.BaseTypeConverterInterceptor.visitPutKeyValueCommand(BaseTypeConverterInterceptor.java:63) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:111) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:74) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1429) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.putInternal(CacheImpl.java:907) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:899) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.DecoratedCache.put(DecoratedCache.java:473) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.put(AbstractProtocolDecoder.scala:252) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.org$infinispan$server$core$AbstractProtocolDecoder$$decodeValue(AbstractProtocolDecoder.scala:207) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.decodeDispatch(AbstractProtocolDecoder.scala:73) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:61) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:362) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:149) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at org.infinispan.server.core.AbstractProtocolDecoder.channelRead(AbstractProtocolDecoder.scala:471) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:318) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:507) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:464) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55]
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to [B
> at org.infinispan.server.hotrod.ClientListenerRegistry$BinaryConverter.convert(ClientListenerRegistry.scala:183) [infinispan-server-hotrod-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.convertValue(CacheNotifierImpl.java:1013) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invokeNoChecks(CacheNotifierImpl.java:958) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invoke(CacheNotifierImpl.java:944) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyCacheEntryCreated(CacheNotifierImpl.java:247) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.container.EntryFactoryImpl.newMvccEntryForPut(EntryFactoryImpl.java:272) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.container.EntryFactoryImpl.wrapEntryForPut(EntryFactoryImpl.java:202) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.wrapEntryForPutIfNeeded(EntryWrappingInterceptor.java:173) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:167) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:48) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:212) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:141) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:148) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:134) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.compat.BaseTypeConverterInterceptor.visitPutKeyValueCommand(BaseTypeConverterInterceptor.java:63) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:111) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:74) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:39) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:48) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:95) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.InboundInvocationHandlerImpl.access$000(InboundInvocationHandlerImpl.java:50) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.InboundInvocationHandlerImpl$2.run(InboundInvocationHandlerImpl.java:179) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55]
> ... 1 more
> 01:15:07,119 ERROR [org.infinispan.server.hotrod.HotRodDecoder] (HotRodServerWorker-3-2) ISPN005009: Unexpected error before any request parameters read: io.netty.handler.codec.DecoderException: org.infinispan.server.hotrod.HotRodException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Duncans-MacBook-Pro-39969, see cause for remote stack trace
> at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:417) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:149) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at org.infinispan.server.core.AbstractProtocolDecoder.channelRead(AbstractProtocolDecoder.scala:471) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:318) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:787) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:125) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:507) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:464) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:378) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:350) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_55]
> Caused by: org.infinispan.server.hotrod.HotRodException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Duncans-MacBook-Pro-39969, see cause for remote stack trace
> at org.infinispan.server.hotrod.HotRodDecoder.createServerException(HotRodDecoder.scala:206) [infinispan-server-hotrod-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.decodeDispatch(AbstractProtocolDecoder.scala:77) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.decode(AbstractProtocolDecoder.scala:61) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:362) [netty-all-4.0.20.Final.jar:4.0.20.Final]
> ... 12 more
> Caused by: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Duncans-MacBook-Pro-39969, see cause for remote stack trace
> at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:41) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:362) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:165) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:526) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:280) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.distribution.BaseDistributionInterceptor.handleNonTxWriteCommand(BaseDistributionInterceptor.java:243) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.distribution.NonTxDistributionInterceptor.visitPutKeyValueCommand(NonTxDistributionInterceptor.java:72) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:346) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:434) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:168) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:46) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:218) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:141) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:148) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:134) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.compat.BaseTypeConverterInterceptor.visitPutKeyValueCommand(BaseTypeConverterInterceptor.java:63) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:111) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:74) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1429) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.putInternal(CacheImpl.java:907) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.CacheImpl.put(CacheImpl.java:899) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.cache.impl.DecoratedCache.put(DecoratedCache.java:473) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.put(AbstractProtocolDecoder.scala:252) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.org$infinispan$server$core$AbstractProtocolDecoder$$decodeValue(AbstractProtocolDecoder.scala:207) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.server.core.AbstractProtocolDecoder.decodeDispatch(AbstractProtocolDecoder.scala:73) [infinispan-server-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> ... 14 more
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to [B
> at org.infinispan.server.hotrod.ClientListenerRegistry$BinaryConverter.convert(ClientListenerRegistry.scala:183) [infinispan-server-hotrod-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.convertValue(CacheNotifierImpl.java:1013) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invokeNoChecks(CacheNotifierImpl.java:958) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invoke(CacheNotifierImpl.java:944) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyCacheEntryCreated(CacheNotifierImpl.java:247) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.container.EntryFactoryImpl.newMvccEntryForPut(EntryFactoryImpl.java:272) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.container.EntryFactoryImpl.wrapEntryForPut(EntryFactoryImpl.java:202) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.wrapEntryForPutIfNeeded(EntryWrappingInterceptor.java:173) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitPutKeyValueCommand(EntryWrappingInterceptor.java:167) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitPutKeyValueCommand(AbstractLockingInterceptor.java:48) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:212) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPutKeyValueCommand(StateTransferInterceptor.java:141) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.updateStoreStatistics(CacheMgmtInterceptor.java:148) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.CacheMgmtInterceptor.visitPutKeyValueCommand(CacheMgmtInterceptor.java:134) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.compat.BaseTypeConverterInterceptor.visitPutKeyValueCommand(BaseTypeConverterInterceptor.java:63) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:111) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:74) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.AbstractVisitor.visitPutKeyValueCommand(AbstractVisitor.java:32) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.write.PutKeyValueCommand.acceptVisitor(PutKeyValueCommand.java:71) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:39) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:48) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.InboundInvocationHandlerImpl.handleInternal(InboundInvocationHandlerImpl.java:95) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.InboundInvocationHandlerImpl.access$000(InboundInvocationHandlerImpl.java:50) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at org.infinispan.remoting.InboundInvocationHandlerImpl$2.run(InboundInvocationHandlerImpl.java:179) [infinispan-core-7.0.0-SNAPSHOT.jar:7.0.0-SNAPSHOT]
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55]
> ... 1 more
> {code}
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
10 years, 6 months
[JBoss JIRA] (ISPN-4517) RollbackCommands should ignore leavers
by Dan Berindei (JIRA)
[ https://issues.jboss.org/browse/ISPN-4517?page=com.atlassian.jira.plugin.... ]
Dan Berindei updated ISPN-4517:
-------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/2715
> RollbackCommands should ignore leavers
> --------------------------------------
>
> Key: ISPN-4517
> URL: https://issues.jboss.org/browse/ISPN-4517
> Project: Infinispan
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Core
> Affects Versions: 6.0.2.Final, 7.0.0.Alpha4
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Critical
> Fix For: 7.0.0.Alpha5
>
>
> When one of the targets of a PrepareCommand leaves, the originator receives a SuspectException and tries to roll back the transaction. However, the RollbackCommand can also fail with with a SuspectException if:
> * syncRollbackPhase = true (the default, since ISPN-4137)
> * The cache topology hasn't been updated to exclude the leaver yet (maybe because it was the old coordinator that left)
> In that case, we could throw a SuspectException in JGroupsTransport.invokeRemotely without sending the RollbackCommand to the other owner:
> {noformat}
> 23:34:01,219 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (PrivateLogChecker-4) ISPN000136: Execution error
> org.infinispan.remoting.transport.jgroups.SuspectException: One or more nodes have left the cluster while replicating command RollbackCommand {gtx=GlobalTransaction:<edg-perf08-52473>:1077:local, cacheName='testCache', topologyId=8}
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.invokeRemotely(JGroupsTransport.java:486)
> at org.infinispan.remoting.rpc.RpcManagerImpl.invokeRemotely(RpcManagerImpl.java:281)
> at org.infinispan.interceptors.distribution.TxDistributionInterceptor.visitRollbackCommand(TxDistributionInterceptor.java:223)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> 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.visitRollbackCommand(AbstractVisitor.java:101)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> at org.infinispan.interceptors.locking.AbstractTxLockingInterceptor.visitRollbackCommand(AbstractTxLockingInterceptor.java:51)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> at org.infinispan.interceptors.NotificationInterceptor.visitRollbackCommand(NotificationInterceptor.java:50)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> at org.infinispan.interceptors.TxInterceptor.visitRollbackCommand(TxInterceptor.java:207)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> 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.visitRollbackCommand(AbstractVisitor.java:101)
> at org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitRollbackCommand(TransactionSynchronizerInterceptor.java:66)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:222)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleTxCommand(StateTransferInterceptor.java:153)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitRollbackCommand(StateTransferInterceptor.java:91)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> 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.visitRollbackCommand(AbstractVisitor.java:101)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:73)
> at org.infinispan.commands.AbstractVisitor.visitRollbackCommand(AbstractVisitor.java:101)
> at org.infinispan.commands.tx.RollbackCommand.acceptVisitor(RollbackCommand.java:40)
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:333)
> at org.infinispan.transaction.TransactionCoordinator.rollbackInternal(TransactionCoordinator.java:237)
> at org.infinispan.transaction.TransactionCoordinator.rollback(TransactionCoordinator.java:172)
> at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:140)
> at org.infinispan.transaction.TransactionCoordinator.prepare(TransactionCoordinator.java:104)
> at org.infinispan.transaction.synchronization.SynchronizationAdapter.beforeCompletion(SynchronizationAdapter.java:44)
> at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion(SynchronizationImple.java:76)
> at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion(TwoPhaseCoordinator.java:273)
> at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:93)
> at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:164)
> at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1165)
> at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:117)
> at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1436)
> at org.infinispan.CacheImpl.putInternal(CacheImpl.java:904)
> at org.infinispan.CacheImpl.put(CacheImpl.java:896)
> at org.infinispan.CacheImpl.put(CacheImpl.java:1471)
> at org.infinispan.CacheImpl.put(CacheImpl.java:231)
> at org.radargun.cachewrappers.InfinispanBasicOperations.put(InfinispanBasicOperations.java:25)
> at org.radargun.cachewrappers.Infinispan51BasicOperations.put(Infinispan51BasicOperations.java:31)
> at org.radargun.cachewrappers.Infinispan52BasicOperations.put(Infinispan52BasicOperations.java:16)
> at org.radargun.cachewrappers.InfinispanWrapper.put(InfinispanWrapper.java:185)
> at org.radargun.stressors.LogChecker.run(LogChecker.java:106)
> {noformat}
> The RollbackCommand should have the SYNCHRONOUS_IGNORE_LEAVERS ResponseMode, so that the owner still alive receives the the command. Otherwise, that stale transaction will never be completed.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
10 years, 6 months
[JBoss JIRA] (ISPN-3128) Better support for (Spring) read caching
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-3128?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-3128:
--------------------------------
Assignee: Gustavo Fernandes (was: Mircea Markus)
> Better support for (Spring) read caching
> ----------------------------------------
>
> Key: ISPN-3128
> URL: https://issues.jboss.org/browse/ISPN-3128
> Project: Infinispan
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Spring Integration
> Affects Versions: 5.3.0.Beta2
> Environment: Spring 3.1+
> Reporter: Mike Noordermeer
> Assignee: Gustavo Fernandes
>
> We're having a bit of an issue using Infinispan as backing cache for Spring's Caching annotations. The reasons are clear, but I haven't found a proper solution yet. I thought I would describe the issues in a feature request, so we can try to make the necessary changes to fix the situation.
> As already described in [the forums|https://community.jboss.org/thread/201086], an Infinispan cache in invalidation mode sends an invalidation message to other cache nodes if something is put into the cache. This conflicts with Spring's idea of {{@Cacheable}} annotations, which are ment to provide read caching for methods. Imagine the following scenario:
> - Method A is annotated with {{@Cacheable}}, backed by a cache in invalidation mode
> - Node X calls Method A, the method is executed and the return value is locally cached (and an invalidation message is sent to Node Y)
> - Node Y calls Method A, the method is executed and the return value is locally cached, *also, the cache of Node X is invalidated*
> - Node X calls Method A and has to execute the method again, since its cache is gone, etc... etc...
> The reason we want to be able to invalidate the read cache, is because if the application executed an update method for the underlying data (usually marked with {{@CacheEvict}} or {{@CachePut}}) we *do* want to invalidate the other ndoes.
> In Infinispan, this problem can be solved by caching using {{cache.putForExternalRead()}}. That will not invalidate other caches on a put, but will invalidate the cache when asked explicitly. However, simply changing {{put()}} to {{putForExternalRead()}} in {{SpringCache}} leads to a couple of other issues:
> - This is probably not the behaviour everyone wants (people that do not use Spring annotations, but expect the usual Infinispan behaviour).
> - Changing {{put()}} to {{putForExternalRead()}} would break the expected {{@CachePut}} behaviour (a new value is generated, so the old values should be invalidated), but it would fix {{@Cacheable}} behaviour.
> Maybe there should be an option in the factory bean to switch between {{put()}} and {{putForExternalRead()}}? Maybe Spring should change or amend its interface so we can differentiate between calls coming from {{@CachePut}} and calls coming from {{@Cacheable}}? An other option is to make the invalidation behaviour configurable in Infinispan (that's the way Ehcache handles this issue, you can choose if puts or updates should be replicated, or just replicate invalidations).
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
10 years, 6 months
[JBoss JIRA] (ISPN-2235) allow referencing jgroups config file from spring
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-2235?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-2235:
--------------------------------
Assignee: Gustavo Fernandes (was: Marius Bogoevici)
> allow referencing jgroups config file from spring
> -------------------------------------------------
>
> Key: ISPN-2235
> URL: https://issues.jboss.org/browse/ISPN-2235
> Project: Infinispan
> Issue Type: Enhancement
> Security Level: Public(Everyone can see)
> Components: Spring Integration
> Affects Versions: 5.1.6.FINAL
> Environment: Spring 3.1
> Reporter: Radim Kolář
> Assignee: Gustavo Fernandes
>
> For more easy configuration add to SpringEmbeddedCacheManagerFactoryBean possibility to directly reference to jgroups transport configuration.
> method
> setTransportConfigurationFile -> point to jgroups.xml
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
10 years, 6 months
[JBoss JIRA] (ISPN-2308) Allow SpringCache to be configured to use asynchronous operations
by Mircea Markus (JIRA)
[ https://issues.jboss.org/browse/ISPN-2308?page=com.atlassian.jira.plugin.... ]
Mircea Markus updated ISPN-2308:
--------------------------------
Assignee: Gustavo Fernandes (was: Mircea Markus)
> Allow SpringCache to be configured to use asynchronous operations
> -----------------------------------------------------------------
>
> Key: ISPN-2308
> URL: https://issues.jboss.org/browse/ISPN-2308
> Project: Infinispan
> Issue Type: Feature Request
> Security Level: Public(Everyone can see)
> Components: Spring Integration
> Reporter: Mircea Markus
> Assignee: Gustavo Fernandes
>
> There is a pull request[1] pending for quite some time(3 months) for this. As there's no activity I'm creating a JIRA and closing the pull request for now.
> [1] https://github.com/infinispan/infinispan/pull/1097
> -----------------
> In testing with a cache that was configured to use asynchronous replication, I was seeing some exceptions in my logs about timeout waiting for a lock on a key when doing a put. (It was not frequent - under heavy load testing it was only on a very small percentage of calls to my service)
> Since I was using the @Cacheable annotation to do the caching around those method calls - there was no way for me to catch the CacheExceptions that were thrown. This means that these exceptions were resulting in my services returning 500 errors to the client.
> Poking around, it seems that using the putAsync method would make the put methods return immediately and any exception would not be in the same thread so it wouldn't matter.
> For my use, a put that fails is fine - spring will just put it in the next time if there is no value in the cache.
> This pull request creates a configuration parameter on the EmbeddedCacheManagerFactory and EmbeddedRemoteCacheManagerFactory for "useAsynchronousCacheOperations" which, when set to true, will use a SpringAsynchrnousCache to wrap the native cache instead of the default SpringCache.
> I added unit tests around this and updated other tests.
> In my own load testing environment, I'm no longer seeing the errors related to cache put key lock timeouts and the execution time for my methods has improved in cases when it would have otherwise been blocking waiting for a put.
> (this is a new pull request against the 5.1.x branch - although the changes also apply cleanly to the 5.2 branch as that's where I first created them)
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)
10 years, 6 months