[Red Hat JIRA] (IPROTO-187) Add support for marshalling null elements in collections/arrays
by Nistor Adrian (Jira)
[ https://issues.redhat.com/browse/IPROTO-187?page=com.atlassian.jira.plugi... ]
Nistor Adrian reassigned IPROTO-187:
------------------------------------
Assignee: Nistor Adrian
> Add support for marshalling null elements in collections/arrays
> ---------------------------------------------------------------
>
> Key: IPROTO-187
> URL: https://issues.redhat.com/browse/IPROTO-187
> Project: Infinispan ProtoStream
> Issue Type: Enhancement
> Affects Versions: 4.4.0.Alpha1
> Reporter: Nistor Adrian
> Assignee: Nistor Adrian
> Priority: Major
>
> So far, protostream has minimal support for nulls. A top level null object is marshalled as the empty (zero bytes) message.
>
> For the sake of backward compatibility we'll keep this behavior for top level, but we need a different approach for elements of an array or collection. In this case we need to use a null token. A new field will be added in WappedMessage to represent the null.
--
This message was sent by Atlassian Jira
(v8.13.1#813001)
3 years, 10 months
[Red Hat JIRA] (ISPN-12710) IllegalArgumentException in VoidResponseCollector: Self-suppression not permitted
by Dan Berindei (Jira)
[ https://issues.redhat.com/browse/ISPN-12710?page=com.atlassian.jira.plugi... ]
Dan Berindei updated ISPN-12710:
--------------------------------
Status: Open (was: New)
> IllegalArgumentException in VoidResponseCollector: Self-suppression not permitted
> ---------------------------------------------------------------------------------
>
> Key: ISPN-12710
> URL: https://issues.redhat.com/browse/ISPN-12710
> Project: Infinispan
> Issue Type: Bug
> Components: Core
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 12.1.0.Final
>
>
> Since the ISPN-12662 fix {{ConsistentReliabilitySplitBrainTest.testLockUseAfterPartitionWithMajority}} is failing in CI:
> {noformat}
> 16:24:32,401 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.lock.ConsistentReliabilitySplitBrainTest.testAutoReleaseIfLockIsAcquiredFromAMinorityPartition[DENY_READ_WRITES]
> java.lang.Error: java.util.concurrent.ExecutionException: org.infinispan.lock.exception.ClusteredLockException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Test-NodeD, see cause for remote stack trace
> at org.infinispan.functional.FunctionalTestUtils.await(FunctionalTestUtils.java:67) ~[infinispan-core-12.1.0-SNAPSHOT-tests.jar:12.1.0-SNAPSHOT]
> at org.infinispan.lock.ConsistentReliabilitySplitBrainTest.testAutoReleaseIfLockIsAcquiredFromAMinorityPartition(ConsistentReliabilitySplitBrainTest.java:133) ~[test-classes/:?]
> {noformat}
> That fix replaced a usage of {{MapResponseCollector}} with {{VoidResponseCollector}}, which makes sense because the response values are ignored. The problem is that {{VoidResponseCollector}} tries to keep track of the exceptions received from all the targets by adding them as suppressed exceptions to the first received exception, and {{ThrowableExternalizer}} reuses {{OutdatedTopologyException}} instances, causing an {{IllegalArgumentException}}:
> {noformat}
> 16:24:32,380 ERROR (jgroups-12,Test-NodeD:[]) [InvocationContextInterceptor] ISPN000136: Error executing command ReadWriteKeyCommand on Cache 'org.infinispan.LOCKS', writing keys [ClusteredLockKey{name=Test}]
> java.lang.IllegalArgumentException: Self-suppression not permitted
> at java.lang.Throwable.addSuppressed(Throwable.java:1066) ~[?:?]
> at org.infinispan.remoting.transport.impl.VoidResponseCollector.recordException(VoidResponseCollector.java:54) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
> at org.infinispan.remoting.transport.impl.VoidResponseCollector.addException(VoidResponseCollector.java:46) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
> at org.infinispan.remoting.transport.impl.VoidResponseCollector.addException(VoidResponseCollector.java:18) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
> at org.infinispan.remoting.transport.ValidResponseCollector.addResponse(ValidResponseCollector.java:29) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
> at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:92) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
> at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:51) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
> at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1407) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
> {noformat}
--
This message was sent by Atlassian Jira
(v8.13.1#813001)
3 years, 10 months
[Red Hat JIRA] (ISPN-12710) IllegalArgumentException in VoidResponseCollector: Self-suppression not permitted
by Dan Berindei (Jira)
Dan Berindei created ISPN-12710:
-----------------------------------
Summary: IllegalArgumentException in VoidResponseCollector: Self-suppression not permitted
Key: ISPN-12710
URL: https://issues.redhat.com/browse/ISPN-12710
Project: Infinispan
Issue Type: Bug
Components: Core
Reporter: Dan Berindei
Assignee: Dan Berindei
Fix For: 12.1.0.Final
Since the ISPN-12662 fix {{ConsistentReliabilitySplitBrainTest.testLockUseAfterPartitionWithMajority}} is failing in CI:
{noformat}
16:24:32,401 ERROR (testng-Test:[]) [TestSuiteProgress] Test failed: org.infinispan.lock.ConsistentReliabilitySplitBrainTest.testAutoReleaseIfLockIsAcquiredFromAMinorityPartition[DENY_READ_WRITES]
java.lang.Error: java.util.concurrent.ExecutionException: org.infinispan.lock.exception.ClusteredLockException: org.infinispan.remoting.RemoteException: ISPN000217: Received exception from Test-NodeD, see cause for remote stack trace
at org.infinispan.functional.FunctionalTestUtils.await(FunctionalTestUtils.java:67) ~[infinispan-core-12.1.0-SNAPSHOT-tests.jar:12.1.0-SNAPSHOT]
at org.infinispan.lock.ConsistentReliabilitySplitBrainTest.testAutoReleaseIfLockIsAcquiredFromAMinorityPartition(ConsistentReliabilitySplitBrainTest.java:133) ~[test-classes/:?]
{noformat}
That fix replaced a usage of {{MapResponseCollector}} with {{VoidResponseCollector}}, which makes sense because the response values are ignored. The problem is that {{VoidResponseCollector}} tries to keep track of the exceptions received from all the targets by adding them as suppressed exceptions to the first received exception, and {{ThrowableExternalizer}} reuses {{OutdatedTopologyException}} instances, causing an {{IllegalArgumentException}}:
{noformat}
16:24:32,380 ERROR (jgroups-12,Test-NodeD:[]) [InvocationContextInterceptor] ISPN000136: Error executing command ReadWriteKeyCommand on Cache 'org.infinispan.LOCKS', writing keys [ClusteredLockKey{name=Test}]
java.lang.IllegalArgumentException: Self-suppression not permitted
at java.lang.Throwable.addSuppressed(Throwable.java:1066) ~[?:?]
at org.infinispan.remoting.transport.impl.VoidResponseCollector.recordException(VoidResponseCollector.java:54) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
at org.infinispan.remoting.transport.impl.VoidResponseCollector.addException(VoidResponseCollector.java:46) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
at org.infinispan.remoting.transport.impl.VoidResponseCollector.addException(VoidResponseCollector.java:18) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
at org.infinispan.remoting.transport.ValidResponseCollector.addResponse(ValidResponseCollector.java:29) ~[infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
at org.infinispan.remoting.transport.impl.MultiTargetRequest.onResponse(MultiTargetRequest.java:92) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
at org.infinispan.remoting.transport.impl.RequestRepository.addResponse(RequestRepository.java:51) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
at org.infinispan.remoting.transport.jgroups.JGroupsTransport.processResponse(JGroupsTransport.java:1407) [infinispan-core-12.1.0-SNAPSHOT.jar:12.1.0-SNAPSHOT]
{noformat}
--
This message was sent by Atlassian Jira
(v8.13.1#813001)
3 years, 10 months
[Red Hat JIRA] (IPROTO-187) Add support for marshalling null elements in collections/arrays
by Nistor Adrian (Jira)
Nistor Adrian created IPROTO-187:
------------------------------------
Summary: Add support for marshalling null elements in collections/arrays
Key: IPROTO-187
URL: https://issues.redhat.com/browse/IPROTO-187
Project: Infinispan ProtoStream
Issue Type: Enhancement
Affects Versions: 4.4.0.Alpha1
Reporter: Nistor Adrian
So far, protostream has minimal support for nulls. A top level null object is marshalled as the empty (zero bytes) message.
For the sake of backward compatibility we'll keep this behavior for top level, but we need a different approach for elements of an array or collection. In this case we need to use a null token. A new field will be added in WappedMessage to represent the null.
--
This message was sent by Atlassian Jira
(v8.13.1#813001)
3 years, 10 months
[Red Hat JIRA] (ISPN-12584) Protobuf serialization is being used in library mode with spring starter
by Ramon Gordillo Gutierrez (Jira)
[ https://issues.redhat.com/browse/ISPN-12584?page=com.atlassian.jira.plugi... ]
Ramon Gordillo Gutierrez commented on ISPN-12584:
-------------------------------------------------
My bad. I used "local" in my last comment, when I should use "embedded".
If a developer uses an embedded cache, it is because the application is communicating from the same JVM, so a developer is hardly thinking about what the cache is doing underneath to marshal data among replicas.
That being said, I don't mean protostream cannot be used if it is more efficient, but the default serializer should consider the application need not worry about any additional details unless advanced configuration is requested.
> Protobuf serialization is being used in library mode with spring starter
> ------------------------------------------------------------------------
>
> Key: ISPN-12584
> URL: https://issues.redhat.com/browse/ISPN-12584
> Project: Infinispan
> Issue Type: Bug
> Components: Marshalling
> Affects Versions: 12.0.0.Dev07, 11.0.8.Final
> Reporter: Ramon Gordillo Gutierrez
> Assignee: Dan Berindei
> Priority: Major
> Fix For: 12.1.0.Final
>
>
> With 11.0.8, I get the following exception when doing a put in a replicated-cache:
> {noformat}
> 2020-12-18 07:21:43.232 WARN 1 --- [98f-md4d4-51498] org.infinispan.PERSISTENCE : ISPN000559: Cannot marshall 'class com.redhat.Customer'
> java.lang.IllegalArgumentException: No marshaller registered for Java type com.redhat.Customer{noformat}
> Same code is working right on a local-cache
> I have tried also 12.0.0.Dev7 (with 11.0.6 spring starter), and the exception is similar but slightly different:
> {noformat}
> 2020-12-18 08:07:48.956 WARN 1 --- [nio-8080-exec-1] org.infinispan.PERSISTENCE: ISPN000559: Cannot marshall 'class org.infinispan.spring.common.provider.NullValue'
> java.lang.IllegalArgumentException: No marshaller registered for Java type org.infinispan.spring.common.provider.
> {noformat}
--
This message was sent by Atlassian Jira
(v8.13.1#813001)
3 years, 10 months