Hello, Ivan.

UTF-8 can’t encode all UNICODE characters.

> 13 дек. 2021 г., в 12:49, Ivan Daschinsky <ivanda...@gmail.com> написал(а):
> 
> Khm, maybe a better variant is  to enforce all strings to be encoded in
> UTF-8?
> AFAIK multi OS cluster is a quite common case.
> 
> 
> пн, 13 дек. 2021 г. в 11:36, Mikhail Petrov <pmgheap....@gmail.com>:
> 
>> Igniters,
>> 
>> Recently we faced the problem that if the cluster consists of nodes
>> running in the JVM with different encodings, many issues arise.
>> The root cause of the mentioned issues is components that use
>> `String#getBytes()` and `new String(<byte array>)`, which relies on the
>> system default encoding. Thus, if a string is deserialized on a node
>> with a different encoding from the one that serialized it, the
>> deserialized string can be different from the original one.
>> 
>> For example:
>> 
>> Serialization/deserialization of string in communication messages may be
>> broken for some strings on nodes running in a JVM with a different
>> encoding as DirectByteBufferStreamImplV2 uses String#getBytes() to
>> serialize strings - [1]
>> 
>> Or the IgniteAuthenticationProcessor can compute different security IDs
>> for the user on different nodes in this case - [2]
>> 
>> What do you think, if we solve this problem globally, by rejecting to
>> join nodes that run on JVMs with different encodings?
>> 
>> As a result, we will be sure that all cluster nodes have the same
>> encoding and all related problems will be solved.
>> 
>> [1] - https://issues.apache.org/jira/browse/IGNITE-16106
>> [2] - https://issues.apache.org/jira/browse/IGNITE-16068
>> 
>> --
>> Mikhail
>> 
>> 
> 
> -- 
> Sincerely yours, Ivan Daschinskiy

Reply via email to