Aleksandr Chesnokov created IGNITE-28294:
--------------------------------------------

             Summary: Fix direct nested container serialization for 
Map/Collection fields
                 Key: IGNITE-28294
                 URL: https://issues.apache.org/jira/browse/IGNITE-28294
             Project: Ignite
          Issue Type: Bug
            Reporter: Aleksandr Chesnokov
            Assignee: Aleksandr Chesnokov
         Attachments: IGNITE-26568_Remove_CacheEntryInfoCollection.patch

Steps to reproduce:

1) Replace type of GridDhtPartitionSupplyMessage#infos to 
Map<Integer, List<GridCacheEntryInfo>> (see patch from attachments)
2) Generate serializers
3) Run GridJdkMarshallerSelfTest#testMessaging. There will be
 
{noformat}
org.apache.ignite.IgniteException: Invalid message type: 259 at 
org.apache.ignite.internal.managers.communication.IgniteMessageFactoryImpl.create(IgniteMessageFactoryImpl.java:142)
 at 
org.apache.ignite.spi.communication.tcp.internal.GridNioServerWrapper$2.create(GridNioServerWrapper.java:830)
 at 
org.apache.ignite.internal.direct.stream.DirectByteBufferStream.readMessage(DirectByteBufferStream.java:1570)
 at 
org.apache.ignite.internal.direct.stream.DirectByteBufferStream.read(DirectByteBufferStream.java:2242)
 at 
org.apache.ignite.internal.direct.stream.DirectByteBufferStream.readCollection(DirectByteBufferStream.java:1664)
 at 
org.apache.ignite.internal.direct.stream.DirectByteBufferStream.read(DirectByteBufferStream.java:2236)
 at 
org.apache.ignite.internal.direct.stream.DirectByteBufferStream.readMap(DirectByteBufferStream.java:1716)
 at 
org.apache.ignite.internal.direct.DirectMessageReader.readMap(DirectMessageReader.java:416){noformat}
Looks like the root cause is that nested containers are still serialized 
through the same DirectByteBufferStream instance. We should switch to the 
stream from the new nested state instead
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to