chesnokoff commented on code in PR #12671:
URL: https://github.com/apache/ignite/pull/12671#discussion_r2744837661


##########
modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java:
##########
@@ -6638,7 +6638,16 @@ private class SocketReader extends IgniteSpiThread {
                         }
                     }
 
-                    if (!Arrays.equals(buf, U.IGNITE_HEADER)) {
+                    if (!Arrays.equals(buf, U.IGNITE_HEADER_V2)) {
+                        if (Arrays.equals(buf, U.IGNITE_HEADER_V1)) {
+                            if (log.isDebugEnabled())
+                                log.debug("Remote node uses legacy discovery 
protocol (V1), local expects V2 " +
+                                    "(check Ignite versions / rolling upgrade 
compatibility) [rmtAddr=" + rmtAddr +
+                                    ", locAddr=" + 
sock.getLocalSocketAddress() + "]");
+

Review Comment:
   We discussed to send message to old node with legacy protocol. I tried it 
but new node fails with
   Failed to deserialize object with given class loader: 
jdk.internal.loader.ClassLoaders$AppClassLoader@311d617d at 
org/apache/ignite/spi/discovery/tcp/ServerImpl.java:6955
   
   It is Caused by: 
org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryAbstractTraceableMessage;
 local class incompatible: stream classdesc serialVersionUID = 
5764055654892291162, local class serialVersionUID = -2609852714099079963
   
   It looks like deserialization is impossible because we changed structure of 
our messages after refactoring. So it would be challenging to support all 
legacy formats. As a quick solution, let's just log message about legacy 
protocol



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to