[
https://issues.apache.org/jira/browse/IGNITE-17387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17568327#comment-17568327
]
Pavel Tupitsyn commented on IGNITE-17387:
-----------------------------------------
[~isapego] Looks good to me.
> Protocol version mismatch in case of a long password
> ----------------------------------------------------
>
> Key: IGNITE-17387
> URL: https://issues.apache.org/jira/browse/IGNITE-17387
> Project: Ignite
> Issue Type: Bug
> Components: thin client
> Affects Versions: 2.13
> Reporter: Igor Sapego
> Assignee: Igor Sapego
> Priority: Major
> Fix For: 2.14
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> If user specifies a password longer than 64k (with the default conf) we get a
> protocol mismatch error:
> {code}
> org.apache.ignite.internal.client.thin.ClientProtocolError: Protocol version
> mismatch: client 1.7.0 / server 2.8.0. Server details: Unsupported version:
> 1.0.0
> {code}
> It happens because of the overflow of socket send buffer (limit is 64K see
> https://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html#setReceiveBufferSize(int)
> ).
> So WA is to extend default socket buffers size and add limitation to their
> passwords sizes (e.g restrict max password size to 32K).
> {code}
> // if password is about 60K it will be OK for default config, if more than
> 64K you will receive version protocol error (because
> // TcpClientChannel would read wrong data from buffer). Here we extend
> default buffer sizes to 100K to bypass this issue.
> new ClientConnectorConfiguration()
> .setSocketSendBufferSize(100 * 1024)
> .setSocketReceiveBufferSize(100 * 1024)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)