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

Reply via email to