[JBoss JIRA] (IPROTO-129) ProtobufUtil.fromWrappedByteArray should not create a ByteArrayInputStream
by Dan Berindei (Jira)
Dan Berindei created IPROTO-129:
-----------------------------------
Summary: ProtobufUtil.fromWrappedByteArray should not create a ByteArrayInputStream
Key: IPROTO-129
URL: https://issues.redhat.com/browse/IPROTO-129
Project: Infinispan ProtoStream
Issue Type: Bug
Affects Versions: 4.3.2.Final
Reporter: Dan Berindei
{{ProtobufUtil.fromWrappedByteArray}} wraps the {{bytep[]}} in a {{ByteArrayInputStream}} and uses that as an input for {{CodedInputStream}}. But that is inefficient, because {{CodedInputStream.StreamDecoder}} needs to allocate a buffer and copy from the stream into the buffer before processing.
Instead we can pass the {{byte[]}} directly to {{CodedInputStream}} and use {{CodedInputStream.ArrayDecoder}}, which doesn't need a buffer.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 11 months
[JBoss JIRA] (IPROTO-129) ProtobufUtil.fromWrappedByteArray should not create a ByteArrayInputStream
by Dan Berindei (Jira)
[ https://issues.redhat.com/browse/IPROTO-129?page=com.atlassian.jira.plugi... ]
Dan Berindei reassigned IPROTO-129:
-----------------------------------
Assignee: Dan Berindei
> ProtobufUtil.fromWrappedByteArray should not create a ByteArrayInputStream
> --------------------------------------------------------------------------
>
> Key: IPROTO-129
> URL: https://issues.redhat.com/browse/IPROTO-129
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.2.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
>
> {{ProtobufUtil.fromWrappedByteArray}} wraps the {{bytep[]}} in a {{ByteArrayInputStream}} and uses that as an input for {{CodedInputStream}}. But that is inefficient, because {{CodedInputStream.StreamDecoder}} needs to allocate a buffer and copy from the stream into the buffer before processing.
> Instead we can pass the {{byte[]}} directly to {{CodedInputStream}} and use {{CodedInputStream.ArrayDecoder}}, which doesn't need a buffer.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 11 months
[JBoss JIRA] (IPROTO-129) ProtobufUtil.fromWrappedByteArray should not create a ByteArrayInputStream
by Dan Berindei (Jira)
[ https://issues.redhat.com/browse/IPROTO-129?page=com.atlassian.jira.plugi... ]
Dan Berindei updated IPROTO-129:
--------------------------------
Status: Open (was: New)
> ProtobufUtil.fromWrappedByteArray should not create a ByteArrayInputStream
> --------------------------------------------------------------------------
>
> Key: IPROTO-129
> URL: https://issues.redhat.com/browse/IPROTO-129
> Project: Infinispan ProtoStream
> Issue Type: Bug
> Affects Versions: 4.3.2.Final
> Reporter: Dan Berindei
> Assignee: Dan Berindei
> Priority: Major
>
> {{ProtobufUtil.fromWrappedByteArray}} wraps the {{bytep[]}} in a {{ByteArrayInputStream}} and uses that as an input for {{CodedInputStream}}. But that is inefficient, because {{CodedInputStream.StreamDecoder}} needs to allocate a buffer and copy from the stream into the buffer before processing.
> Instead we can pass the {{byte[]}} directly to {{CodedInputStream}} and use {{CodedInputStream.ArrayDecoder}}, which doesn't need a buffer.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 11 months
[JBoss JIRA] (ISPN-10700) Unknown type error with binary storage and indexing
by Gustavo Fernandes (Jira)
[ https://issues.redhat.com/browse/ISPN-10700?page=com.atlassian.jira.plugi... ]
Gustavo Fernandes updated ISPN-10700:
-------------------------------------
Status: Open (was: New)
> Unknown type error with binary storage and indexing
> ---------------------------------------------------
>
> Key: ISPN-10700
> URL: https://issues.redhat.com/browse/ISPN-10700
> Project: Infinispan
> Issue Type: Bug
> Components: Indexing
> Affects Versions: 10.0.0.CR2
> Reporter: Will Burns
> Assignee: Gustavo Fernandes
> Priority: Major
>
> While adding tests for indexing with off heap, I also happened to add some with BINARY storage. And unfortunately the indexing code is not properly unwrapping the key when removing an index it appears. The stack trace is as the following:
> {code}
> java.util.concurrent.CompletionException: org.infinispan.commons.CacheException: java.io.IOException: Unknown type: 74
> at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
> at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
> at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:632)
> at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
> at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:113)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:86)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:31)
> at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
> at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
> at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
> at org.infinispan.util.concurrent.CompletionStages.lambda$continueOnExecutor$0(CompletionStages.java:158)
> at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
> at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: org.infinispan.commons.CacheException: java.io.IOException: Unknown type: 74
> at org.infinispan.commons.dataconversion.BinaryEncoder.fromStorage(BinaryEncoder.java:39)
> at org.infinispan.encoding.DataConversion.extractIndexable(DataConversion.java:226)
> at org.infinispan.query.backend.QueryInterceptor.extractKey(QueryInterceptor.java:403)
> at org.infinispan.query.backend.QueryInterceptor.keyToString(QueryInterceptor.java:411)
> at org.infinispan.query.backend.QueryInterceptor.lambda$removeFromIndexes$4(QueryInterceptor.java:340)
> at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
> at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1603)
> at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
> at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
> at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
> at org.infinispan.query.backend.QueryInterceptor.removeFromIndexes(QueryInterceptor.java:341)
> at org.infinispan.query.backend.QueryInterceptor.processChange(QueryInterceptor.java:442)
> at org.infinispan.query.backend.QueryInterceptor.lambda$handleDataWriteCommand$0(QueryInterceptor.java:189)
> at org.infinispan.interceptors.InvocationSuccessAction.apply(InvocationSuccessAction.java:22)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:123)
> ... 13 more
> Caused by: java.io.IOException: Unknown type: 74
> at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:741)
> at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:378)
> at org.infinispan.marshall.core.GlobalMarshaller.objectFromObjectInput(GlobalMarshaller.java:212)
> at org.infinispan.marshall.core.GlobalMarshaller.objectFromByteBuffer(GlobalMarshaller.java:208)
> at org.infinispan.commons.dataconversion.BinaryEncoder.fromStorage(BinaryEncoder.java:37)
> ... 31 more
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 11 months
[JBoss JIRA] (ISPN-10700) Unknown type error with binary storage and indexing
by Gustavo Fernandes (Jira)
[ https://issues.redhat.com/browse/ISPN-10700?page=com.atlassian.jira.plugi... ]
Work on ISPN-10700 started by Gustavo Fernandes.
------------------------------------------------
> Unknown type error with binary storage and indexing
> ---------------------------------------------------
>
> Key: ISPN-10700
> URL: https://issues.redhat.com/browse/ISPN-10700
> Project: Infinispan
> Issue Type: Bug
> Components: Indexing
> Affects Versions: 10.0.0.CR2
> Reporter: Will Burns
> Assignee: Gustavo Fernandes
> Priority: Major
>
> While adding tests for indexing with off heap, I also happened to add some with BINARY storage. And unfortunately the indexing code is not properly unwrapping the key when removing an index it appears. The stack trace is as the following:
> {code}
> java.util.concurrent.CompletionException: org.infinispan.commons.CacheException: java.io.IOException: Unknown type: 74
> at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331)
> at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346)
> at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:632)
> at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
> at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:113)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:86)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.accept(QueueAsyncInvocationStage.java:31)
> at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
> at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506)
> at java.base/java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073)
> at org.infinispan.util.concurrent.CompletionStages.lambda$continueOnExecutor$0(CompletionStages.java:158)
> at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859)
> at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837)
> at java.base/java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478)
> at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
> at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
> at java.base/java.lang.Thread.run(Thread.java:834)
> Caused by: org.infinispan.commons.CacheException: java.io.IOException: Unknown type: 74
> at org.infinispan.commons.dataconversion.BinaryEncoder.fromStorage(BinaryEncoder.java:39)
> at org.infinispan.encoding.DataConversion.extractIndexable(DataConversion.java:226)
> at org.infinispan.query.backend.QueryInterceptor.extractKey(QueryInterceptor.java:403)
> at org.infinispan.query.backend.QueryInterceptor.keyToString(QueryInterceptor.java:411)
> at org.infinispan.query.backend.QueryInterceptor.lambda$removeFromIndexes$4(QueryInterceptor.java:340)
> at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195)
> at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)
> at java.base/java.util.HashMap$KeySpliterator.forEachRemaining(HashMap.java:1603)
> at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
> at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
> at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
> at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
> at org.infinispan.query.backend.QueryInterceptor.removeFromIndexes(QueryInterceptor.java:341)
> at org.infinispan.query.backend.QueryInterceptor.processChange(QueryInterceptor.java:442)
> at org.infinispan.query.backend.QueryInterceptor.lambda$handleDataWriteCommand$0(QueryInterceptor.java:189)
> at org.infinispan.interceptors.InvocationSuccessAction.apply(InvocationSuccessAction.java:22)
> at org.infinispan.interceptors.impl.QueueAsyncInvocationStage.invokeQueuedHandlers(QueueAsyncInvocationStage.java:123)
> ... 13 more
> Caused by: java.io.IOException: Unknown type: 74
> at org.infinispan.marshall.core.GlobalMarshaller.readNonNullableObject(GlobalMarshaller.java:741)
> at org.infinispan.marshall.core.GlobalMarshaller.readNullableObject(GlobalMarshaller.java:378)
> at org.infinispan.marshall.core.GlobalMarshaller.objectFromObjectInput(GlobalMarshaller.java:212)
> at org.infinispan.marshall.core.GlobalMarshaller.objectFromByteBuffer(GlobalMarshaller.java:208)
> at org.infinispan.commons.dataconversion.BinaryEncoder.fromStorage(BinaryEncoder.java:37)
> ... 31 more
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
4 years, 11 months