tkalkirill commented on code in PR #6161: URL: https://github.com/apache/ignite-3/pull/6161#discussion_r2177301111
########## modules/core/src/main/java/org/apache/ignite/internal/util/GridUnsafe.java: ########## @@ -728,6 +728,8 @@ public static void putDouble(long addr, double val) { * @return Short value from byte array. */ public static short getShortLittleEndian(byte[] arr, long off) { + assert IS_BIG_ENDIAN; Review Comment: It looks confusing, the method name indicates little endian, but here there is a check that it is big endian. The same goes for other methods in this class. ########## modules/network/src/main/java/org/apache/ignite/internal/network/direct/stream/DirectByteBufferStreamImplV1.java: ########## @@ -73,6 +74,23 @@ * {@link DirectByteBufferStream} implementation. */ public class DirectByteBufferStreamImplV1 implements DirectByteBufferStream { + /** + * There's a binary incompatibility between Apache Ignite 3.0 and later versions due to the bug in 3.0. If someone wants to upgrade from + * 3.0 to any other version on AARCH64 architecture or other architecture that was considered "not unaligned" in Ignite 3.0, they need + * to set this system property to {@code true}. + * + * @see #writeUuidLong(long, long) + * @see #readUuidLong(long) + * @see #unaligned30() + */ + private static final String IGNITE_30_3X_COMPATIBILITY_PROPERTY = "IGNITE_30_3X_UUIDS_SERIALIZATION_COMPATIBILITY"; Review Comment: Thank you for leaving a comment, but how will the user understand that this is the problem? When I was sorting out IGNITE-25796 I had to step by step add various logging directly in the code to understand that this is the problem. I have no idea how to fix this well, let's think together. Here are my thoughts on this: 1. We can explicitly write somewhere in the documentation that it is not recommended to run on PDS from 3.0 on 3.x if the user has aarch64. 2. Write explicitly somewhere in the release notes that we have such a problem, and it is not recommended to run on PDS from 3.0 on 3.x if the user has aarch64. 3. Maybe we already write somewhere which PDS on which version the node directory was created and then write a warning. 3.1 We can now write somewhere in PDS on which version we created directories with PDS and then write a warning, if there may be such a problem. What do you think? We can solve the problem with other tickets of course. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@ignite.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org