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]