[JBoss JIRA] (ISPN-6576) Functional API does not load values from cache loader on non-primary owners
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-6576?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño reassigned ISPN-6576:
--------------------------------------
Assignee: Krzysztof Sobolewski
> Functional API does not load values from cache loader on non-primary owners
> ---------------------------------------------------------------------------
>
> Key: ISPN-6576
> URL: https://issues.jboss.org/browse/ISPN-6576
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.1.Final
> Reporter: Krzysztof Sobolewski
> Assignee: Krzysztof Sobolewski
> Fix For: 9.0.0.Alpha3, 9.0.0.Final, 8.2.3.Final
>
> Attachments: AbstractFunctionalCachestoreTest.java, AbstractFunctionalCachestoreTest.java, FunctionalCachestoreTestNonTx.java, FunctionalCachestoreTestTx.java
>
>
> We have a cluster in DIST mode with numOwners > 1, so there are primary and secondary owners, with persistence enabled. When I do a read-write operation on the cluster using the Functional API on a key that is present in the cache loader, the entry that gets passed to the functional operation has a non-null value only for the primary owner. See:
> org.infinispan.interceptors.ClusteredCacheLoaderInterceptor.skipLoadForWriteCommand()
> line 53.
> This is using non-transactional cache.
> NOTE: The attached tests are modified version of the ones in ISPN-6573.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (ISPN-6576) Functional API does not load values from cache loader on non-primary owners
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-6576?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño resolved ISPN-6576.
------------------------------------
Resolution: Done
Great work Krzysztof! :D
> Functional API does not load values from cache loader on non-primary owners
> ---------------------------------------------------------------------------
>
> Key: ISPN-6576
> URL: https://issues.jboss.org/browse/ISPN-6576
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.1.Final
> Reporter: Krzysztof Sobolewski
> Assignee: Krzysztof Sobolewski
> Fix For: 9.0.0.Alpha3, 9.0.0.Final, 8.2.3.Final
>
> Attachments: AbstractFunctionalCachestoreTest.java, AbstractFunctionalCachestoreTest.java, FunctionalCachestoreTestNonTx.java, FunctionalCachestoreTestTx.java
>
>
> We have a cluster in DIST mode with numOwners > 1, so there are primary and secondary owners, with persistence enabled. When I do a read-write operation on the cluster using the Functional API on a key that is present in the cache loader, the entry that gets passed to the functional operation has a non-null value only for the primary owner. See:
> org.infinispan.interceptors.ClusteredCacheLoaderInterceptor.skipLoadForWriteCommand()
> line 53.
> This is using non-transactional cache.
> NOTE: The attached tests are modified version of the ones in ISPN-6573.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (ISPN-6542) Subclasses of AbstractWriteKeyCommand don't marshal the Params params field
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-6542?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-6542:
-----------------------------------
Fix Version/s: 8.2.3.Final
> Subclasses of AbstractWriteKeyCommand don't marshal the Params params field
> ---------------------------------------------------------------------------
>
> Key: ISPN-6542
> URL: https://issues.jboss.org/browse/ISPN-6542
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.1.Final
> Reporter: Krzysztof Sobolewski
> Assignee: Radim Vansa
> Fix For: 9.0.0.Alpha3, 9.0.0.Final, 8.2.3.Final
>
>
> I'm attempting to use the Functional API, but I'm unable to because of an exception like this:
> java.util.concurrent.ExecutionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from FunctionalCachestoreTest-NodeB-820, see cause for remote stack trace
> at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
> at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1895)
> (...)
> Caused by: java.lang.NullPointerException
> at org.infinispan.interceptors.CacheWriterInterceptor.visitWriteCommand(CacheWriterInterceptor.java:233)
> at org.infinispan.interceptors.CacheWriterInterceptor.visitReadWriteKeyCommand(CacheWriterInterceptor.java:215)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitDataCommand(CacheLoaderInterceptor.java:190)
> at org.infinispan.interceptors.CacheLoaderInterceptor.visitReadWriteKeyCommand(CacheLoaderInterceptor.java:331)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:496)
> at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:561)
> at org.infinispan.interceptors.EntryWrappingInterceptor.visitReadWriteKeyCommand(EntryWrappingInterceptor.java:379)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:97)
> at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:41)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitReadWriteKeyCommand(AbstractLockingInterceptor.java:160)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:343)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:281)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitReadWriteKeyCommand(StateTransferInterceptor.java:204)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:110)
> at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:79)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
> at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
> at org.infinispan.commands.AbstractVisitor.visitReadWriteKeyCommand(AbstractVisitor.java:203)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:90)
> at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:335)
> at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommand(BaseRpcInvokingCommand.java:43)
> at org.infinispan.commands.remote.SingleRpcCommand.perform(SingleRpcCommand.java:51)
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokePerform(BasePerCacheInboundInvocationHandler.java:92)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:34)
> ... 3 more
> The line where the exception occurs is:
> Param<PersistenceMode> persistMode = command.getParams().get(PersistenceMode.ID);
> Turns out that command.getParams() returns null. Investigating further, it looks like the "params" field of ReadWriteKeyCommand is not marshaled; the receiver then unmarshals everythng except the "params" field, which remains null on the remote node, where the command fails.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months
[JBoss JIRA] (ISPN-6576) Functional API does not load values from cache loader on non-primary owners
by Galder Zamarreño (JIRA)
[ https://issues.jboss.org/browse/ISPN-6576?page=com.atlassian.jira.plugin.... ]
Galder Zamarreño updated ISPN-6576:
-----------------------------------
Fix Version/s: 9.0.0.Alpha3
9.0.0.Final
8.2.3.Final
> Functional API does not load values from cache loader on non-primary owners
> ---------------------------------------------------------------------------
>
> Key: ISPN-6576
> URL: https://issues.jboss.org/browse/ISPN-6576
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Affects Versions: 8.2.1.Final
> Reporter: Krzysztof Sobolewski
> Fix For: 9.0.0.Alpha3, 9.0.0.Final, 8.2.3.Final
>
> Attachments: AbstractFunctionalCachestoreTest.java, AbstractFunctionalCachestoreTest.java, FunctionalCachestoreTestNonTx.java, FunctionalCachestoreTestTx.java
>
>
> We have a cluster in DIST mode with numOwners > 1, so there are primary and secondary owners, with persistence enabled. When I do a read-write operation on the cluster using the Functional API on a key that is present in the cache loader, the entry that gets passed to the functional operation has a non-null value only for the primary owner. See:
> org.infinispan.interceptors.ClusteredCacheLoaderInterceptor.skipLoadForWriteCommand()
> line 53.
> This is using non-transactional cache.
> NOTE: The attached tests are modified version of the ones in ISPN-6573.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
8 years, 6 months