[JBoss JIRA] (ISPN-11285) Compute with off-heap/binary storage throws ClassCastException
by Will Burns (Jira)
[ https://issues.redhat.com/browse/ISPN-11285?page=com.atlassian.jira.plugi... ]
Will Burns updated ISPN-11285:
------------------------------
Summary: Compute with off-heap/binary storage throws ClassCastException (was: Compute with off-heap storage throws ClassCastException)
> Compute with off-heap/binary storage throws ClassCastException
> --------------------------------------------------------------
>
> Key: ISPN-11285
> URL: https://issues.redhat.com/browse/ISPN-11285
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 10.1.1.Final
> Reporter: Wolf-Dieter Fink
> Priority: Major
>
> If the compute(....) method is used with expiration parameters the change is not applied and an Exception is thrown.
> The same operation without expiration or using dedicated get/put is working correctly.
> As it is executed by task (compute will not work remote) in C/S mode the server log is this:
> {noformat}
> 18:26:01,654 ERROR (SINGLE_PORT-ServerIO-5-2) [org.infinispan.interceptors.impl.InvocationContextInterceptor] ISPN000136: Error executing command PrepareCommand on Cache 'wolfX', writing keys [test] java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
> at org.infinispan.container.offheap.OffHeapConcurrentMap.put(OffHeapConcurrentMap.java:83)
> at org.infinispan.container.impl.AbstractInternalDataContainer.put(AbstractInternalDataContainer.java:170)
> at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:148)
> at org.infinispan.statetransfer.CommitManager.commitEntry(CommitManager.java:138)
> at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:101)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$DistributionLogic.commitSingleEntry(ClusteringDependentLogic.java:631)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:236)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:638)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:890)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:624)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.lambda$new$2(EntryWrappingInterceptor.java:152)
> at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25)
> at org.infinispan.interceptors.impl.SimpleAsyncInvocationStage.addCallback(SimpleAsyncInvocationStage.java:68)
> at org.infinispan.interceptors.InvocationStage.thenApply(InvocationStage.java:45)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenApply(BaseAsyncInterceptor.java:84)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.prepareHandler(EntryWrappingInterceptor.java:191)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.wrapEntriesForPrepareAndApply(EntryWrappingInterceptor.java:925)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitPrepareCommand(EntryWrappingInterceptor.java:186)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.impl.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:41)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:103)
> at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitPrepareCommand(PessimisticLockingInterceptor.java:122)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.impl.TxInterceptor.handlePrepareCommand(TxInterceptor.java:156)
> at org.infinispan.interceptors.impl.TxInterceptor.visitPrepareCommand(TxInterceptor.java:127)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitCommand(TransactionSynchronizerInterceptor.java:41)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndHandle(BaseAsyncInterceptor.java:190)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleTxCommand(StateTransferInterceptor.java:203)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPrepareCommand(StateTransferInterceptor.java:69)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitPrepareCommand(DDAsyncInterceptor.java:131)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:128)
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:90)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:61)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitPrepareCommand(DDAsyncInterceptor.java:131)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:49)
> at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invoke(AsyncInterceptorChainImpl.java:244)
> at org.infinispan.transaction.impl.TransactionCoordinator.commit(TransactionCoordinator.java:159)
> at org.infinispan.transaction.impl.TransactionTable.afterCompletion(TransactionTable.java:910)
> at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:33)
> at org.infinispan.commons.tx.TransactionImpl.notifyAfterCompletion(TransactionImpl.java:512)
> at org.infinispan.commons.tx.TransactionImpl.runCommit(TransactionImpl.java:338)
> at org.infinispan.commons.tx.TransactionImpl.commit(TransactionImpl.java:110)
> at org.infinispan.commons.tx.TransactionManagerImpl.commit(TransactionManagerImpl.java:73)
> at org.infinispan.cache.impl.CacheImpl.tryCommit(CacheImpl.java:1934)
> at org.infinispan.cache.impl.CacheImpl.executeCommandWithInjectedTx(CacheImpl.java:1855)
> at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1828)
> at org.infinispan.cache.impl.CacheImpl.computeInternal(CacheImpl.java:334)
> at org.infinispan.cache.impl.CacheImpl.computeInternal(CacheImpl.java:325)
> at org.infinispan.cache.impl.CacheImpl.compute(CacheImpl.java:279)
> at org.infinispan.cache.impl.AbstractDelegatingCache.compute(AbstractDelegatingCache.java:400)
> at org.jboss.as.quickstarts.datagrid.remotetasks.tasks.BooksRemovingTask.call(BooksRemovingTask.java:75)
> at org.jboss.as.quickstarts.datagrid.remotetasks.tasks.BooksRemovingTask.call(BooksRemovingTask.java:35)
> at org.infinispan.server.tasks.ServerTaskWrapper.run(ServerTaskWrapper.java:27)
> at org.infinispan.server.tasks.LocalServerTaskRunner.execute(LocalServerTaskRunner.java:23)
> at org.infinispan.server.tasks.ServerTaskEngine.invokeTask(ServerTaskEngine.java:79)
> at org.infinispan.server.tasks.ServerTaskEngine.runTask(ServerTaskEngine.java:63)
> at org.infinispan.tasks.impl.TaskManagerImpl.runTask(TaskManagerImpl.java:94)
> at org.infinispan.server.hotrod.TaskRequestProcessor.exec(TaskRequestProcessor.java:39)
> at org.infinispan.server.hotrod.HotRodDecoder.switch2(HotRodDecoder.java:1664)
> at org.infinispan.server.hotrod.HotRodDecoder.switch1_0(HotRodDecoder.java:155)
> at org.infinispan.server.hotrod.HotRodDecoder.decode(HotRodDecoder.java:143)
> at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:503)
> at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:442)
> at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
> at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
> at org.infinispan.server.core.transport.StatsChannelHandler.channelRead(StatsChannelHandler.java:26)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
> at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931)
> at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
> at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:502)
> at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407)
> at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.lang.Thread.run(Thread.java:748)
> 18:26:01,664 ERROR (SINGLE_PORT-ServerIO-5-2) [org.infinispan.transaction.impl.TransactionCoordinator] ISPN000097: Error while processing a prepare in a single-phase transaction org.infinispan.commons.CacheException: java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.rethrowException(InvocationContextInterceptor.java:134)
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.lambda$new$0(InvocationContextInterceptor.java:62)
> at org.infinispan.interceptors.ExceptionSyncInvocationStage.andExceptionally(ExceptionSyncInvocationStage.java:40)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:133)
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:90)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:61)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitPrepareCommand(DDAsyncInterceptor.java:131)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:49)
> at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invoke(AsyncInterceptorChainImpl.java:244)
> at org.infinispan.transaction.impl.TransactionCoordinator.commit(TransactionCoordinator.java:159)
> at org.infinispan.transaction.impl.TransactionTable.afterCompletion(TransactionTable.java:910)
> at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:33)
> at org.infinispan.commons.tx.TransactionImpl.notifyAfterCompletion(TransactionImpl.java:512)
> at org.infinispan.commons.tx.TransactionImpl.runCommit(TransactionImpl.java:338)
> at org.infinispan.commons.tx.TransactionImpl.commit(TransactionImpl.java:110)
> at org.infinispan.commons.tx.TransactionManagerImpl.commit(TransactionManagerImpl.java:73)
> at org.infinispan.cache.impl.CacheImpl.tryCommit(CacheImpl.java:1934)
> at org.infinispan.cache.impl.CacheImpl.executeCommandWithInjectedTx(CacheImpl.java:1855)
> at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1828)
> at org.infinispan.cache.impl.CacheImpl.computeInternal(CacheImpl.java:334)
> at org.infinispan.cache.impl.CacheImpl.computeInternal(CacheImpl.java:325)
> at org.infinispan.cache.impl.CacheImpl.compute(CacheImpl.java:279)
> at org.infinispan.cache.impl.AbstractDelegatingCache.compute(AbstractDelegatingCache.java:400)
> at org.jboss.as.quickstarts.datagrid.remotetasks.tasks.BooksRemovingTask.call(BooksRemovingTask.java:75)
> at org.jboss.as.quickstarts.datagrid.remotetasks.tasks.BooksRemovingTask.call(BooksRemovingTask.java:35)
> at org.infinispan.server.tasks.ServerTaskWrapper.run(ServerTaskWrapper.java:27)
> at org.infinispan.server.tasks.LocalServerTaskRunner.execute(LocalServerTaskRunner.java:23)
> at org.infinispan.server.tasks.ServerTaskEngine.invokeTask(ServerTaskEngine.java:79)
> at org.infinispan.server.tasks.ServerTaskEngine.runTask(ServerTaskEngine.java:63)
> at org.infinispan.tasks.impl.TaskManagerImpl.runTask(TaskManagerImpl.java:94)
> at org.infinispan.server.hotrod.TaskRequestProcessor.exec(TaskRequestProcessor.java:39)
> at org.infinispan.server.hotrod.HotRodDecoder.switch2(HotRodDecoder.java:1664)
> at org.infinispan.server.hotrod.HotRodDecoder.switch1_0(HotRodDecoder.java:155)
> at org.infinispan.server.hotrod.HotRodDecoder.decode(HotRodDecoder.java:143)
> at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:503)
> at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:442)
> at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
> at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
> at org.infinispan.server.core.transport.StatsChannelHandler.channelRead(StatsChannelHandler.java:26)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
> at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931)
> at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
> at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:502)
> at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407)
> at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
> at org.infinispan.container.offheap.OffHeapConcurrentMap.put(OffHeapConcurrentMap.java:83)
> at org.infinispan.container.impl.AbstractInternalDataContainer.put(AbstractInternalDataContainer.java:170)
> at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:148)
> at org.infinispan.statetransfer.CommitManager.commitEntry(CommitManager.java:138)
> at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:101)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$DistributionLogic.commitSingleEntry(ClusteringDependentLogic.java:631)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:236)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:638)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:890)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:624)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.lambda$new$2(EntryWrappingInterceptor.java:152)
> at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25)
> at org.infinispan.interceptors.impl.SimpleAsyncInvocationStage.addCallback(SimpleAsyncInvocationStage.java:68)
> at org.infinispan.interceptors.InvocationStage.thenApply(InvocationStage.java:45)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenApply(BaseAsyncInterceptor.java:84)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.prepareHandler(EntryWrappingInterceptor.java:191)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.wrapEntriesForPrepareAndApply(EntryWrappingInterceptor.java:925)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitPrepareCommand(EntryWrappingInterceptor.java:186)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.impl.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:41)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:103)
> at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitPrepareCommand(PessimisticLockingInterceptor.java:122)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.impl.TxInterceptor.handlePrepareCommand(TxInterceptor.java:156)
> at org.infinispan.interceptors.impl.TxInterceptor.visitPrepareCommand(TxInterceptor.java:127)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitCommand(TransactionSynchronizerInterceptor.java:41)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndHandle(BaseAsyncInterceptor.java:190)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleTxCommand(StateTransferInterceptor.java:203)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPrepareCommand(StateTransferInterceptor.java:69)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitPrepareCommand(DDAsyncInterceptor.java:131)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:128)
> ... 54 more
> 18:26:01,671 ERROR (SINGLE_PORT-ServerIO-5-2) [org.infinispan.commons.tx.TransactionImpl] ISPN000926: afterCompletion() failed for SynchronizationAdapter{localTransaction=LocalTransaction{remoteLockedNodes=[lt-34411], isMarkedForRollback=false, lockedKeys=[], backupKeyLocks=[], topologyId=1, stateTransferFlag=null} org.infinispan.transaction.synchronization.SyncLocalTransaction@3} org.infinispan.transaction.synchronization.SynchronizationAdapter@22 org.infinispan.commons.CacheException: Could not commit.
> at org.infinispan.transaction.impl.TransactionTable.afterCompletion(TransactionTable.java:912)
> at org.infinispan.transaction.synchronization.SynchronizationAdapter.afterCompletion(SynchronizationAdapter.java:33)
> at org.infinispan.commons.tx.TransactionImpl.notifyAfterCompletion(TransactionImpl.java:512)
> at org.infinispan.commons.tx.TransactionImpl.runCommit(TransactionImpl.java:338)
> at org.infinispan.commons.tx.TransactionImpl.commit(TransactionImpl.java:110)
> at org.infinispan.commons.tx.TransactionManagerImpl.commit(TransactionManagerImpl.java:73)
> at org.infinispan.cache.impl.CacheImpl.tryCommit(CacheImpl.java:1934)
> at org.infinispan.cache.impl.CacheImpl.executeCommandWithInjectedTx(CacheImpl.java:1855)
> at org.infinispan.cache.impl.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1828)
> at org.infinispan.cache.impl.CacheImpl.computeInternal(CacheImpl.java:334)
> at org.infinispan.cache.impl.CacheImpl.computeInternal(CacheImpl.java:325)
> at org.infinispan.cache.impl.CacheImpl.compute(CacheImpl.java:279)
> at org.infinispan.cache.impl.AbstractDelegatingCache.compute(AbstractDelegatingCache.java:400)
> at org.jboss.as.quickstarts.datagrid.remotetasks.tasks.BooksRemovingTask.call(BooksRemovingTask.java:75)
> at org.jboss.as.quickstarts.datagrid.remotetasks.tasks.BooksRemovingTask.call(BooksRemovingTask.java:35)
> at org.infinispan.server.tasks.ServerTaskWrapper.run(ServerTaskWrapper.java:27)
> at org.infinispan.server.tasks.LocalServerTaskRunner.execute(LocalServerTaskRunner.java:23)
> at org.infinispan.server.tasks.ServerTaskEngine.invokeTask(ServerTaskEngine.java:79)
> at org.infinispan.server.tasks.ServerTaskEngine.runTask(ServerTaskEngine.java:63)
> at org.infinispan.tasks.impl.TaskManagerImpl.runTask(TaskManagerImpl.java:94)
> at org.infinispan.server.hotrod.TaskRequestProcessor.exec(TaskRequestProcessor.java:39)
> at org.infinispan.server.hotrod.HotRodDecoder.switch2(HotRodDecoder.java:1664)
> at org.infinispan.server.hotrod.HotRodDecoder.switch1_0(HotRodDecoder.java:155)
> at org.infinispan.server.hotrod.HotRodDecoder.decode(HotRodDecoder.java:143)
> at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:503)
> at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:442)
> at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
> at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
> at org.infinispan.server.core.transport.StatsChannelHandler.channelRead(StatsChannelHandler.java:26)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
> at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
> at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
> at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931)
> at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
> at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:502)
> at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:407)
> at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050)
> at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: javax.transaction.xa.XAException
> at org.infinispan.transaction.impl.TransactionCoordinator.handleCommitFailure(TransactionCoordinator.java:215)
> at org.infinispan.transaction.impl.TransactionCoordinator.commit(TransactionCoordinator.java:161)
> at org.infinispan.transaction.impl.TransactionTable.afterCompletion(TransactionTable.java:910)
> ... 45 more
> Caused by: org.infinispan.commons.CacheException: java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.rethrowException(InvocationContextInterceptor.java:134)
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.lambda$new$0(InvocationContextInterceptor.java:62)
> at org.infinispan.interceptors.ExceptionSyncInvocationStage.andExceptionally(ExceptionSyncInvocationStage.java:40)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:133)
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:90)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:61)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitPrepareCommand(DDAsyncInterceptor.java:131)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:49)
> at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invoke(AsyncInterceptorChainImpl.java:244)
> at org.infinispan.transaction.impl.TransactionCoordinator.commit(TransactionCoordinator.java:159)
> ... 46 more
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
> at org.infinispan.container.offheap.OffHeapConcurrentMap.put(OffHeapConcurrentMap.java:83)
> at org.infinispan.container.impl.AbstractInternalDataContainer.put(AbstractInternalDataContainer.java:170)
> at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:148)
> at org.infinispan.statetransfer.CommitManager.commitEntry(CommitManager.java:138)
> at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:101)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$DistributionLogic.commitSingleEntry(ClusteringDependentLogic.java:631)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:236)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:638)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:890)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:624)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.lambda$new$2(EntryWrappingInterceptor.java:152)
> at org.infinispan.interceptors.InvocationSuccessFunction.apply(InvocationSuccessFunction.java:25)
> at org.infinispan.interceptors.impl.SimpleAsyncInvocationStage.addCallback(SimpleAsyncInvocationStage.java:68)
> at org.infinispan.interceptors.InvocationStage.thenApply(InvocationStage.java:45)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenApply(BaseAsyncInterceptor.java:84)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.prepareHandler(EntryWrappingInterceptor.java:191)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.wrapEntriesForPrepareAndApply(EntryWrappingInterceptor.java:925)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitPrepareCommand(EntryWrappingInterceptor.java:186)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.impl.NotificationInterceptor.visitPrepareCommand(NotificationInterceptor.java:41)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:103)
> at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitPrepareCommand(PessimisticLockingInterceptor.java:122)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.impl.TxInterceptor.handlePrepareCommand(TxInterceptor.java:156)
> at org.infinispan.interceptors.impl.TxInterceptor.visitPrepareCommand(TxInterceptor.java:127)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.statetransfer.TransactionSynchronizerInterceptor.visitCommand(TransactionSynchronizerInterceptor.java:41)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndHandle(BaseAsyncInterceptor.java:190)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleTxCommand(StateTransferInterceptor.java:203)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitPrepareCommand(StateTransferInterceptor.java:69)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:59)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:53)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitPrepareCommand(DDAsyncInterceptor.java:131)
> at org.infinispan.commands.tx.PrepareCommand.acceptVisitor(PrepareCommand.java:211)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:128)
> ... 54 more
> {noformat}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 1 month
[JBoss JIRA] (ISPN-11341) Client requests go to wrong server with binary storage
by Gustavo Fernandes (Jira)
[ https://issues.redhat.com/browse/ISPN-11341?page=com.atlassian.jira.plugi... ]
Gustavo Fernandes commented on ISPN-11341:
------------------------------------------
Unfortunately marshalling for byte[] cannot be skipped, as when reading, it is not possible to tell if that stored byte[] is a marshalled POJO or a byte[] that was stored directly
> Client requests go to wrong server with binary storage
> ------------------------------------------------------
>
> Key: ISPN-11341
> URL: https://issues.redhat.com/browse/ISPN-11341
> Project: Infinispan
> Issue Type: Bug
> Components: Core, Hot Rod, Server
> Affects Versions: 9.4.18.Final, 10.1.2.Final, 11.0.0.Alpha1
> Reporter: Dan Berindei
> Assignee: Gustavo Fernandes
> Priority: Major
> Fix For: 10.1.3.Final, 11.0.0.Alpha2, 9.4.19.Final
>
>
> Caches with BINARY storage accept {{byte[]}} keys, but add a prefix to indicate that the input was a {{byte[]}} and not a {{WrappedByteArray}}.
> This happens in {{BinaryEncoder.toStorage()}}, before the segment of the key is computed, so the segment computed by the server is different from the segment computed by the client (based on the key without the prefix).
> Since the client doesn't know (and shouldn't know) the server cache's storage type, the server should always compute the segment of the key based on the {{byte[]}} sent by the client. The simplest way to achieve that would be to make {{BinaryEncoder}} skip the marshalling for {{byte[]}}.
> The only problem is that we don't want users to put in a {{WrappedByteArray}} and get back a {{byte[]}}, so we should disallow {{WrappedByteArray}} keys and values in {{Cache}} methods.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 1 month
[JBoss JIRA] (ISPN-11249) Unexpected functionality added by Java8 default interface methods
by Will Burns (Jira)
[ https://issues.redhat.com/browse/ISPN-11249?page=com.atlassian.jira.plugi... ]
Will Burns updated ISPN-11249:
------------------------------
Status: Pull Request Sent (was: Open)
Git Pull Request: https://github.com/infinispan/infinispan/pull/7921
> Unexpected functionality added by Java8 default interface methods
> -----------------------------------------------------------------
>
> Key: ISPN-11249
> URL: https://issues.redhat.com/browse/ISPN-11249
> Project: Infinispan
> Issue Type: Bug
> Reporter: Wolf-Dieter Fink
> Priority: Critical
> Fix For: 10.1.3.Final, 11.0.0.Alpha2
>
>
> With Java8 there are interfaces which implement default methods.
> Those defaults are available if not overridden, but the function behind might not be correct because the method was not meant to be implemented.
> There are issues with the transaction and locking because of the remote invocation, so the conditional operation will not work consistent.
> Such methods need to be checked and throw a UnsupportedOperation.
> This appears for the compute(...) methods
> compute(key, BiFunct) -> default to java.util.concurrent.ConcurrentMap interface
> compute() methods with expiration will throw an UnsupportedOperationException as expected.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 1 month
[JBoss JIRA] (ISPN-11249) Unexpected functionality added by Java8 default interface methods
by Will Burns (Jira)
[ https://issues.redhat.com/browse/ISPN-11249?page=com.atlassian.jira.plugi... ]
Will Burns updated ISPN-11249:
------------------------------
Fix Version/s: 10.1.3.Final
11.0.0.Alpha2
> Unexpected functionality added by Java8 default interface methods
> -----------------------------------------------------------------
>
> Key: ISPN-11249
> URL: https://issues.redhat.com/browse/ISPN-11249
> Project: Infinispan
> Issue Type: Bug
> Reporter: Wolf-Dieter Fink
> Priority: Critical
> Fix For: 10.1.3.Final, 11.0.0.Alpha2
>
>
> With Java8 there are interfaces which implement default methods.
> Those defaults are available if not overridden, but the function behind might not be correct because the method was not meant to be implemented.
> There are issues with the transaction and locking because of the remote invocation, so the conditional operation will not work consistent.
> Such methods need to be checked and throw a UnsupportedOperation.
> This appears for the compute(...) methods
> compute(key, BiFunct) -> default to java.util.concurrent.ConcurrentMap interface
> compute() methods with expiration will throw an UnsupportedOperationException as expected.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 1 month