[JBoss JIRA] (ISPN-7991) Compatibility between Rest and HotRod not working on both ways
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7991?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes edited comment on ISPN-7991 at 6/29/17 3:52 AM:
------------------------------------------------------------------
When it was working, I believe it was storing as String.
The transcoding work, though, does not assume each each entry has a metadata with the type stored, but the cache is homogeneous: same content type and same storage format for all entries.
was (Author: gustavonalle):
When it was working, I believe it was storing as String.
The transcoding work, though, does not assume each each entry has a metadata with the type stored, but the cache is homogeneous: same content type and same storage format for all entried.
> Compatibility between Rest and HotRod not working on both ways
> --------------------------------------------------------------
>
> Key: ISPN-7991
> URL: https://issues.jboss.org/browse/ISPN-7991
> Project: Infinispan
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.2.7.Final, 9.1.0.Beta1, 9.0.3.Final
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
>
> Writing via Hot Rod and reading via Rest works fine, but not the other way around
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 3 months
[JBoss JIRA] (ISPN-7991) Compatibility between Rest and HotRod not working on both ways
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7991?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes commented on ISPN-7991:
-----------------------------------------
When it was working, I believe it was storing as String.
The transcoding work, though, does not assume each each entry has a metadata with the type stored, but the cache is homogeneous: same content type and same storage format for all entried.
> Compatibility between Rest and HotRod not working on both ways
> --------------------------------------------------------------
>
> Key: ISPN-7991
> URL: https://issues.jboss.org/browse/ISPN-7991
> Project: Infinispan
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.2.7.Final, 9.1.0.Beta1, 9.0.3.Final
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
>
> Writing via Hot Rod and reading via Rest works fine, but not the other way around
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 3 months
[JBoss JIRA] (ISPN-7991) Compatibility between Rest and HotRod not working on both ways
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7991?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes edited comment on ISPN-7991 at 6/28/17 6:15 PM:
------------------------------------------------------------------
[~sebastian.laskawiec] The rest data writing should be revisited. It should take into account the {{Content-Type}} sent in the request and convert the data on the fly to the required storage format in the cache.
On master it will rely on encoding to fix it, but on 8.2.x and 9.0.x it is a regression. Being able to interop between rest and hotrod (using strings) is the whole point of compat mode and this was working until recently.
was (Author: gustavonalle):
[~sebastian.laskawiec] The rest data writing should be revisited. It should take into account the {{Content-Type}} sent in the request and convert the data on the fly to the required storage format in the cache.
On master it will rely on encoding to fix it, but on 8.2.x and 9.0.x it is a regression. Being able to interop between rest and hotrod (using strings) is the whole point of combat mode and this was working until recently.
> Compatibility between Rest and HotRod not working on both ways
> --------------------------------------------------------------
>
> Key: ISPN-7991
> URL: https://issues.jboss.org/browse/ISPN-7991
> Project: Infinispan
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.2.7.Final, 9.1.0.Beta1, 9.0.3.Final
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
>
> Writing via Hot Rod and reading via Rest works fine, but not the other way around
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 3 months
[JBoss JIRA] (ISPN-7991) Compatibility between Rest and HotRod not working on both ways
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7991?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes edited comment on ISPN-7991 at 6/28/17 6:14 PM:
------------------------------------------------------------------
[~sebastian.laskawiec] The rest data writing should be revisited. It should take into account the {{Content-Type}} sent in the request and convert the data on the fly to the required storage format in the cache.
On master it will rely on encoding to fix it, but on 8.2.x and 9.0.x it is a regression. Being able to interop between rest and hotrod (using strings) is the whole point of combat mode and this was working until recently.
was (Author: gustavonalle):
[~sebastian.laskawiec] The rest data writing should be revisited. It should take into account the {{Content-Type}} sent in the request and convert the data on the fly to the required storage format in the cache.
> Compatibility between Rest and HotRod not working on both ways
> --------------------------------------------------------------
>
> Key: ISPN-7991
> URL: https://issues.jboss.org/browse/ISPN-7991
> Project: Infinispan
> Issue Type: Bug
> Components: Server
> Affects Versions: 8.2.7.Final, 9.1.0.Beta1, 9.0.3.Final
> Reporter: Gustavo Fernandes
> Assignee: Gustavo Fernandes
>
> Writing via Hot Rod and reading via Rest works fine, but not the other way around
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 3 months
[JBoss JIRA] (ISPN-7993) Functional commands don't support Data convertions
by Gustavo Fernandes (JIRA)
[ https://issues.jboss.org/browse/ISPN-7993?page=com.atlassian.jira.plugin.... ]
Gustavo Fernandes commented on ISPN-7993:
-----------------------------------------
[~karesti] I think the description is fine
> Functional commands don't support Data convertions
> --------------------------------------------------
>
> Key: ISPN-7993
> URL: https://issues.jboss.org/browse/ISPN-7993
> Project: Infinispan
> Issue Type: Feature Request
> Components: Core
> Reporter: Katia Aresti
> Assignee: Katia Aresti
> Fix For: 9.2
>
>
> Functional commands don't support encoding
>
> For example, in this test
> {code}
> public class ClusteredCacheTest extends MultipleCacheManagersTest {
> public void testFunctionalMap() throws Exception {
> prepareTestData();
> FunctionalMapImpl functionalMap = FunctionalMapImpl.create(this.cache2.getAdvancedCache());
> FunctionalMap.ReadWriteMap<String, String> readWriteMap = ReadWriteMapImpl.create(functionalMap);
> readWriteMap.eval("k", view -> {
> view.set("v");
> return null;
> }).join();
> assertEquals("v", cache2.get("k"));
> }
> }
> {code}
> Returns this exception when the StorageType is OFF_HEAP
> {code}
> 17:27:22,296 ERROR (remote-thread-ClusteredCacheTest-NodeA-p2-t6) [InvocationContextInterceptor] ISPN000136: Error executing command ReadWriteKeyCommand, writing keys [k]
> java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
> at org.infinispan.container.offheap.OffHeapDataContainer.put(OffHeapDataContainer.java:38)
> at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:134)
> at org.infinispan.statetransfer.CommitManager.commitEntry(CommitManager.java:141)
> at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:101)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$ReplicationLogic.commitSingleEntry(ClusteringDependentLogic.java:435)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:183)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:604)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:825)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:581)17:27:22,310 ERROR (jgroups-4,ClusteredCacheTest-NodeB-5393) [InvocationContextInterceptor] ISPN000136: Error executing command ReadWriteKeyCommand, writing keys [k]
> org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ClusteredCacheTest-NodeA-49952, see cause for remote stack trace
> at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:44)
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.checkRsp(JGroupsTransport.java:920)
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.lambda$invokeRemotelyAsync$4(JGroupsTransport.java:689)
> at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
> at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
> at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
> at org.infinispan.remoting.transport.jgroups.RspListFuture.requestDone(RspListFuture.java:53)
> at org.infinispan.remoting.transport.jgroups.RspListFuture.accept(RspListFuture.java:48)
> java.util.concurrent.CompletionException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ClusteredCacheTest-NodeA-49952, see cause for remote stack trace
> at java.util.concurrent.CompletableFuture.reportJoin(CompletableFuture.java:375)
> at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
> at org.infinispan.query.blackbox.ClusteredCacheTest.testFunctionalMap(ClusteredCacheTest.java:886)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
> at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
> at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
> at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
> at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
> at org.testng.TestRunner.privateRun(TestRunner.java:767)
> at org.testng.TestRunner.run(TestRunner.java:617)
> at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
> at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
> at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
> at org.testng.SuiteRunner.run(SuiteRunner.java:254)
> at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
> at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
> at org.testng.TestNG.runSuitesSequentially(TestNG.java:1224)
> at org.testng.TestNG.runSuitesLocally(TestNG.java:1149)
> at org.testng.TestNG.run(TestNG.java:1057)
> at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
> at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:127)
> Caused by: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from ClusteredCacheTest-NodeA-49952, see cause for remote stack trace
> at org.infinispan.remoting.transport.AbstractTransport.checkResponse(AbstractTransport.java:44)
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.checkRsp(JGroupsTransport.java:920)
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.lambda$invokeRemotelyAsync$4(JGroupsTransport.java:689)
> at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:602)
> at java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:577)
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
> at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
> at org.infinispan.remoting.transport.jgroups.RspListFuture.requestDone(RspListFuture.java:53)
> at org.infinispan.remoting.transport.jgroups.RspListFuture.accept(RspListFuture.java:48)
> at org.infinispan.remoting.transport.jgroups.RspListFuture.accept(RspListFuture.java:19)
> at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:760)
> at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:736)
> at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
> at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
> at org.jgroups.blocks.GroupRequest.receiveResponse(GroupRequest.java:106)
> at org.infinispan.remoting.transport.jgroups.CustomRequestCorrelator.handleResponse(CustomRequestCorrelator.java:50)
> at org.jgroups.blocks.RequestCorrelator.dispatch(RequestCorrelator.java:363)
> at org.jgroups.blocks.RequestCorrelator.receiveMessage(RequestCorrelator.java:307)
> at org.jgroups.blocks.MessageDispatcher$ProtocolAdapter.up(MessageDispatcher.java:579)
> at org.jgroups.JChannel.up(JChannel.java:816)
> at org.jgroups.stack.ProtocolStack.up(ProtocolStack.java:893)
> at org.jgroups.protocols.RSVP.up(RSVP.java:163)
> at org.jgroups.protocols.FlowControl.up(FlowControl.java:345)
> at org.jgroups.protocols.tom.TOA.up(TOA.java:112)
> at org.jgroups.protocols.pbcast.GMS.up(GMS.java:867)
> at org.jgroups.protocols.pbcast.STABLE.up(STABLE.java:240)
> at org.jgroups.protocols.UNICAST3.deliverMessage(UNICAST3.java:1059)
> at org.jgroups.protocols.UNICAST3.handleDataReceived(UNICAST3.java:785)
> at org.jgroups.protocols.UNICAST3.up(UNICAST3.java:438)
> at org.jgroups.protocols.pbcast.NAKACK2.up(NAKACK2.java:598)
> at org.jgroups.protocols.Discovery.up(Discovery.java:262)
> at org.jgroups.protocols.TP.passMessageUp(TP.java:1204)
> at org.jgroups.util.SubmitToThreadPool$SingleMessageHandler.run(SubmitToThreadPool.java:87)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to org.infinispan.commons.marshall.WrappedBytes
> at org.infinispan.container.offheap.OffHeapDataContainer.put(OffHeapDataContainer.java:38)
> at org.infinispan.container.entries.ReadCommittedEntry.commit(ReadCommittedEntry.java:134)
> at org.infinispan.statetransfer.CommitManager.commitEntry(CommitManager.java:141)
> at org.infinispan.statetransfer.CommitManager.commit(CommitManager.java:101)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$ReplicationLogic.commitSingleEntry(ClusteringDependentLogic.java:435)
> at org.infinispan.interceptors.locking.ClusteringDependentLogic$AbstractClusteringDependentLogic.commitEntry(ClusteringDependentLogic.java:183)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntry(EntryWrappingInterceptor.java:604)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitEntryIfNeeded(EntryWrappingInterceptor.java:825)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.commitContextEntries(EntryWrappingInterceptor.java:581)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.applyChanges(EntryWrappingInterceptor.java:637)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.lambda$setSkipRemoteGetsAndInvokeNextForDataCommand$8(EntryWrappingInterceptor.java:693)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextThenAccept(BaseAsyncInterceptor.java:109)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:690)
> at org.infinispan.interceptors.impl.EntryWrappingInterceptor.visitReadWriteKeyCommand(EntryWrappingInterceptor.java:497)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:58)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitNonTxDataWriteCommand(AbstractLockingInterceptor.java:127)
> at org.infinispan.interceptors.locking.NonTransactionalLockingInterceptor.visitDataWriteCommand(NonTransactionalLockingInterceptor.java:38)
> at org.infinispan.interceptors.locking.AbstractLockingInterceptor.visitReadWriteKeyCommand(AbstractLockingInterceptor.java:200)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:58)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:326)
> at org.infinispan.statetransfer.StateTransferInterceptor.handleWriteCommand(StateTransferInterceptor.java:264)
> at org.infinispan.statetransfer.StateTransferInterceptor.visitReadWriteKeyCommand(StateTransferInterceptor.java:174)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:58)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:55)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitReadWriteKeyCommand(DDAsyncInterceptor.java:214)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNextAndExceptionally(BaseAsyncInterceptor.java:127)
> at org.infinispan.interceptors.impl.InvocationContextInterceptor.visitCommand(InvocationContextInterceptor.java:97)
> at org.infinispan.interceptors.BaseAsyncInterceptor.invokeNext(BaseAsyncInterceptor.java:60)
> at org.infinispan.interceptors.DDAsyncInterceptor.handleDefault(DDAsyncInterceptor.java:55)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitReadWriteKeyCommand(DDAsyncInterceptor.java:214)
> at org.infinispan.commands.functional.ReadWriteKeyCommand.acceptVisitor(ReadWriteKeyCommand.java:104)
> at org.infinispan.interceptors.DDAsyncInterceptor.visitCommand(DDAsyncInterceptor.java:51)
> at org.infinispan.interceptors.impl.AsyncInterceptorChainImpl.invokeAsync(AsyncInterceptorChainImpl.java:234)
> at org.infinispan.commands.remote.BaseRpcInvokingCommand.processVisitableCommandAsync(BaseRpcInvokingCommand.java:63)
> at org.infinispan.commands.remote.SingleRpcCommand.invokeAsync(SingleRpcCommand.java:57)
> at org.infinispan.remoting.inboundhandler.BasePerCacheInboundInvocationHandler.invokeCommand(BasePerCacheInboundInvocationHandler.java:101)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.invoke(BaseBlockingRunnable.java:99)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.runAsync(BaseBlockingRunnable.java:71)
> at org.infinispan.remoting.inboundhandler.BaseBlockingRunnable.run(BaseBlockingRunnable.java:40)
> ... 3 more
> {code}
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
8 years, 3 months