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

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

Cherry-picked to ignite-3.0: 
https://github.com/apache/ignite-3/commit/947054a91486eb355a4c067566f4aa15a7044203

> 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