[ 
https://issues.apache.org/jira/browse/IGNITE-15638?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17426227#comment-17426227
 ] 

Assen Sharlandjiev commented on IGNITE-15638:
---------------------------------------------

[~jooger],  thank you for reaching back. I'll try to provide you a maven 
project, which could reproduce the problem, but that would be time consuming.
In the meantime, I am able to 100% reproduce the problem, and I can provide 
some hints.
Take a look at the screenshot from my debugger.  Look at the last element of 
that BinaryLazyMap - it appears that it holds a reference to the map itself! 
When using the Ignite 2.10, that same last entry of the BinaryLazyMap is an 
empty array, as it should be in my case.
The BinaryLazyMap in my case is defined as: private Map<String, List<Term>> 
terms; in my class.

If you can reach me on Zoom, I'd be happy to share with you my experience. 

 !screenshot-1.png! 

> BinaryObjectBuilder build() causes java.lang.StackOverflowError
> ---------------------------------------------------------------
>
>                 Key: IGNITE-15638
>                 URL: https://issues.apache.org/jira/browse/IGNITE-15638
>             Project: Ignite
>          Issue Type: Bug
>          Components: binary
>    Affects Versions: 2.11
>            Reporter: Assen Sharlandjiev
>            Priority: Major
>         Attachments: screenshot-1.png
>
>
> The following code causes java.lang.StackOverflowError.
> {code:java}
> final var value = (BinaryObjectImpl) entry.getValue();
> final var builder = value.toBuilder();
> final var binaryObject = builder.build();
> {code}
> below is the stack trace:
> {noformat}
> java.lang.StackOverflowError: null
>       at java.base/java.lang.Class.isArray(Native Method) ~[na:na]
>       at java.base/java.lang.Class.getComponentType(Class.java:1227) ~[na:na]
>       at 
> java.base/jdk.internal.misc.Unsafe.checkPrimitiveArray(Unsafe.java:558) 
> ~[na:na]
>       at 
> java.base/jdk.internal.misc.Unsafe.checkPrimitivePointer(Unsafe.java:579) 
> ~[na:na]
>       at java.base/jdk.internal.misc.Unsafe.copyMemoryChecks(Unsafe.java:832) 
> ~[na:na]
>       at java.base/jdk.internal.misc.Unsafe.copyMemory(Unsafe.java:800) 
> ~[na:na]
>       at jdk.unsupported/sun.misc.Unsafe.copyMemory(Unsafe.java:573) ~[na:na]
>       at 
> org.apache.ignite.internal.util.GridUnsafe.copyMemory(GridUnsafe.java:1312) 
> ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.streams.BinaryHeapOutputStream.copyAndShift(BinaryHeapOutputStream.java:96)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.streams.BinaryAbstractOutputStream.write(BinaryAbstractOutputStream.java:233)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.BinaryWriterExImpl.write(BinaryWriterExImpl.java:401)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryPlainLazyValue.writeTo(BinaryPlainLazyValue.java:47)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:73)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:54)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryLazyMap.writeTo(BinaryLazyMap.java:99)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:73)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:54)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryLazyMap.writeTo(BinaryLazyMap.java:100)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:73)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryBuilderSerializer.writeValue(BinaryBuilderSerializer.java:54)
>  ~[ignite-core-2.11.0.jar:2.11.0]
>       at 
> org.apache.ignite.internal.binary.builder.BinaryLazyMap.writeTo(BinaryLazyMap.java:100)
>  ~[ignite-core-2.11.0.jar:2.11.0]
> .....
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to