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

Pavel Tupitsyn commented on IGNITE-24356:
-----------------------------------------

Merged to main: 
[78a3bf2e355949bbb0d2c95672bb82d58616742f|https://github.com/apache/ignite-3/commit/78a3bf2e355949bbb0d2c95672bb82d58616742f]

> Thin 3.0: Features and extensions handling is inconsistent
> ----------------------------------------------------------
>
>                 Key: IGNITE-24356
>                 URL: https://issues.apache.org/jira/browse/IGNITE-24356
>             Project: Ignite
>          Issue Type: Bug
>          Components: platforms, thin client
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>            Priority: Blocker
>              Labels: ignite-3
>             Fix For: 3.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> * Handshake request and response contain:
>   *  *feature flags*: bitset encoded as msgpack binary
>   * *extensions*: a map of string -> object, encoded as msgpack int (map 
> size) + size * (string + obj) values
> Java, .NET and C++ clients handle those things inconsistenty.
> For example, Java client has:
> {code}
>             var featuresLen = unpacker.unpackBinaryHeader();
>             unpacker.skipValues(featuresLen);
>             var extensionsLen = unpacker.unpackInt();
>             unpacker.skipValues(extensionsLen);
> {code}
> unpacker.skipValues(featuresLen) is wrong, because featuresLen is the size of 
> the binary payload in bytes.
> As a result, the client will fail on handshake if any feature flags are 
> present.



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

Reply via email to