[ 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)