[
https://issues.jboss.org/browse/ISPN-5531?page=com.atlassian.jira.plugin....
]
Enrico Olivelli commented on ISPN-5531:
---------------------------------------
My configuration is the same as ISPN-5449, that is that I launch 3 Infinispan nodes which
form a group. On each JVM I launch an HotRod server.
{code}
Configuration wildcard = new ConfigurationBuilder()
.locking().lockAcquisitionTimeout(lockAcquisitionTimeout)
.concurrencyLevel(10000)
.isolationLevel(IsolationLevel.READ_COMMITTED)
.useLockStriping(true)
.clustering()
.cacheMode(CacheMode.DIST_SYNC)
.l1().lifespan(l1ttl).enable()
.hash().numOwners(numOwners)
.capacityFactor(capacityFactor)
.partitionHandling().enabled(false)
.stateTransfer().awaitInitialTransfer(false)
.timeout(initialTransferTimeout).fetchInMemoryState(false)
.storeAsBinary().enabled(true)
.storeKeysAsBinary(false).storeValuesAsBinary(false)
.jmxStatistics().enable()
.unsafe().unreliableReturnValues(true) // put e remove non ritornano
il valore precedente, tanto a noi non interessa
.compatibility().enable()
.build();
HotRod Server:
HotRodServerConfigurationBuilder configBuilder = new HotRodServerConfigurationBuilder()
.host(address)
.port(port);
hotrodserver.start(configBuilder
.build(),
manager);
{code}
Only one simple "debug" cluster listener
{code}
@Listener
public static class ClusterListener {
@ViewChanged
public void viewChanged(ViewChangedEvent event) {
ArrayList<Address> newm;
if (event.getNewMembers() != null) {
newm = new ArrayList<>(event.getNewMembers());
} else {
newm = new ArrayList<>();
}
ArrayList<Address> oldm;
if (event.getOldMembers() != null) {
oldm = new ArrayList<>(event.getOldMembers());
} else {
oldm = new ArrayList<>();
}
if (newm.size() > oldm.size()) {
List<Address> nn = new ArrayList<>(newm);
nn.removeAll(oldm);
System.out.println("[CACHE] new Members: " +
printAddressList(nn) + ", viewChange group now is : " +
printAddressList(newm));
} else {
List<Address> nn = new ArrayList<>(oldm);
nn.removeAll(newm);
System.out.println("[CACHE] lost Members: " +
printAddressList(nn) + ", viewChange group now is : " +
printAddressList(newm));
}
}
}
{code}
java.lang.UnsupportedOperationException during remove (using
RemoteCacheManager)
--------------------------------------------------------------------------------
Key: ISPN-5531
URL:
https://issues.jboss.org/browse/ISPN-5531
Project: Infinispan
Issue Type: Bug
Components: Core
Affects Versions: 7.2.2.Final
Reporter: Enrico Olivelli
during a "remove" from a java HotRod client we got this error.
This error happens only when there are more than one hotrod server in the cluster.
We are using hotrod server in library mode (embedded)
{code}
15/06/09 08:05:34 ERROR interceptors.InvocationContextInterceptor: ISPN000136: Execution
error
org.infinispan.commons.CacheListenerException: ISPN000280: Caught exception
[java.lang.UnsupportedOperationException] while invoking method [public void
org.infinispan.n
otifications.cachelistener.cluster.RemoteClusterListener.handleClusterEvents(org.infinispan.notifications.cachelistener.event.CacheEntryEvent)
throws java.lang.Exception] on listener instance: org.infinispan.not
ifications.cachelistener.cluster.RemoteClusterListener@28d94aee
at
org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:291)
at
org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:22)
at
org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl.invoke(AbstractListenerImpl.java:309)
at
org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.doRealInvocation(CacheNotifierImpl.java:1180)
at
org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invokeNoChecks(CacheNotifierImpl.java:1175)
at
org.infinispan.notifications.cachelistener.CacheNotifierImpl$BaseCacheEntryListenerInvocation.invoke(CacheNotifierImpl.java:1152)
at
org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyCacheEntryRemoved(CacheNotifierImpl.java:333)
at org.infinispan.commands.write.RemoveCommand.notify(RemoveCommand.java:97)
at
org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.notifyCommitEntry(ClusteringDependentLogic.java:130)
at
org.infinispan.interceptors.locking.ClusteringDependentLogic$DistributionLogic.commitSingleEntry(ClusteringDependentLogic.java:493)
at
org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:108)
at
org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:371)
at
org.infinispan.interceptors.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:549)
at
org.infinispan.interceptors.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:348)
at
org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:422)
at
org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:453)
at
org.infinispan.interceptors.EntryWrappingInterceptor.visitRemoveCommand(EntryWrappingInterceptor.java:252)
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at
org.infinispan.interceptors.distribution.L1LastChanceInterceptor.visitDataWriteCommand(L1LastChanceInterceptor.java:79)
at
org.infinispan.interceptors.distribution.L1LastChanceInterceptor.visitRemoveCommand(L1LastChanceInterceptor.java:75)
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at
org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:88)
at
org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:40)
at
org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitRemoveCommand(AbstractLockingInterceptor.java:65)
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:111)
at
org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:49)
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at
org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:324)
at
org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:256)
at
org.infinispan.statetransfer.StateTransferInterceptor.visitRemoveCommand(StateTransferInterceptor.java:130)
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at
org.infinispan.interceptors.CacheMgmtInterceptor.visitRemoveCommand(CacheMgmtInterceptor.java:209)
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at
org.infinispan.interceptors.compat.BaseTypeConverterInterceptor.visitRemoveCommand(BaseTypeConverterInterceptor.java:228
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:97)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:102)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:71)
at
org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:49)
at
org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:58)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336)
at
org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1617)
at org.infinispan.cache.impl.CacheImpl.removeInternal(CacheImpl.java:579)
at org.infinispan.cache.impl.CacheImpl.remove(CacheImpl.java:572)
at org.infinispan.cache.impl.DecoratedCache.remove(DecoratedCache.java:442)
at
org.infinispan.server.hotrod.CacheDecodeContext.remove(CacheDecodeContext.scala:235)
at
org.infinispan.server.hotrod.HotRodDecoder.handleModification(HotRodDecoder.scala:216)
at
org.infinispan.server.hotrod.HotRodDecoder.org$infinispan$server$hotrod$HotRodDecoder$$decodeKey(HotRodDecoder.scala:102)
at
org.infinispan.server.hotrod.HotRodDecoder$$anonfun$decode$1.apply$mcV$sp(HotRodDecoder.scala:48)
at
org.infinispan.server.hotrod.HotRodDecoder$$anon$1.run(HotRodDecoder.scala:206)
at
org.infinispan.server.hotrod.HotRodDecoder$$anon$1.run(HotRodDecoder.scala:205)
at org.infinispan.security.Security.doAs(Security.java:143)
at
org.infinispan.server.hotrod.HotRodDecoder.wrapSecurity(HotRodDecoder.scala:205)
at org.infinispan.server.hotrod.HotRodDecoder.decode(HotRodDecoder.scala:45)
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:370)
at
io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:168)
at
org.infinispan.server.hotrod.HotRodDecoder.org$infinispan$server$core$transport$StatsChannelHandler$$super$channelRead(HotRodDecoder.scala:31)
at
org.infinispan.server.core.transport.StatsChannelHandler$class.channelRead(StatsChannelHandler.scala:32)
at org.infinispan.server.hotrod.HotRodDecoder.channelRead(HotRodDecoder.scala:31)
at
io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:308)
at
io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:294)
at
io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:846)
at
io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:130)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511)
at
io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354)
at
io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:116)
at
io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:137)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.UnsupportedOperationException
at java.util.AbstractCollection.add(AbstractCollection.java:262)
at java.util.AbstractCollection.addAll(AbstractCollection.java:344)
at
org.infinispan.notifications.cachelistener.cluster.impl.BatchingClusterEventManagerImpl$UnicastEventContext.addTargets(BatchingClusterEventManagerImpl.java:82)
at
org.infinispan.notifications.cachelistener.cluster.impl.BatchingClusterEventManagerImpl.addEvents(BatchingClusterEventManagerImpl.java:43)
at
org.infinispan.notifications.cachelistener.cluster.RemoteClusterListener.handleClusterEvents(RemoteClusterListener.java:108)
at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at
org.infinispan.notifications.impl.AbstractListenerImpl$ListenerInvocationImpl$1.run(AbstractListenerImpl.java:286)
... 76 more
{code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)