From 86baa9ff50ab4a52444ce990f66bccaf30cfe4e3 Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Mon, 22 Dec 2025 00:19:36 +0500 Subject: [PATCH 1/2] IGNITE-27413 Use MessageSerializer for TcpDiscoveryDuplicateIdMessage --- .../discovery/DiscoveryMessageFactory.java | 3 ++ .../spi/discovery/tcp/TcpDiscoverySpi.java | 2 +- .../TcpDiscoveryDuplicateIdMessage.java | 43 ++++++++----------- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java index 0881c80259b50..955e636ba3a3f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/DiscoveryMessageFactory.java @@ -23,6 +23,7 @@ import org.apache.ignite.internal.codegen.TcpDiscoveryClientPingResponseSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryConnectionCheckMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryDiscardMessageSerializer; +import org.apache.ignite.internal.codegen.TcpDiscoveryDuplicateIdMessageSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryHandshakeRequestSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryHandshakeResponseSerializer; import org.apache.ignite.internal.codegen.TcpDiscoveryLoopbackProblemMessageSerializer; @@ -37,6 +38,7 @@ import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryClientPingResponse; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryConnectionCheckMessage; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryDiscardMessage; +import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryDuplicateIdMessage; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHandshakeRequest; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryHandshakeResponse; import org.apache.ignite.spi.discovery.tcp.messages.TcpDiscoveryLoopbackProblemMessage; @@ -61,5 +63,6 @@ public class DiscoveryMessageFactory implements MessageFactoryProvider { factory.register((short)8, TcpDiscoveryHandshakeRequest::new, new TcpDiscoveryHandshakeRequestSerializer()); factory.register((short)9, TcpDiscoveryDiscardMessage::new, new TcpDiscoveryDiscardMessageSerializer()); factory.register((short)10, TcpDiscoveryHandshakeResponse::new, new TcpDiscoveryHandshakeResponseSerializer()); + factory.register((short)11, TcpDiscoveryDuplicateIdMessage::new, new TcpDiscoveryDuplicateIdMessageSerializer()); } } diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java index 49c0127b821d2..40162d518d198 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java @@ -2005,7 +2005,7 @@ protected IgniteSpiException duplicateIdError(TcpDiscoveryDuplicateIdMessage msg .append("(fix configuration and restart local node) [localNode=") .append(locNode) .append(", existingNode=") - .append(msg.node() == null ? msg.nodeId() : msg.node()) + .append(msg.nodeId()) .append(']'); return new IgniteSpiException(errorMsgBldr.toString()); diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java index f8f1cf5a66b31..d88b9d2847afd 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java @@ -18,36 +18,25 @@ package org.apache.ignite.spi.discovery.tcp.messages; import java.util.UUID; +import org.apache.ignite.internal.Order; import org.apache.ignite.internal.util.typedef.internal.S; -import org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode; +import org.apache.ignite.plugin.extensions.communication.Message; /** * Message telling joining node that new topology already contain * different node with same ID. */ -public class TcpDiscoveryDuplicateIdMessage extends TcpDiscoveryAbstractMessage { +public class TcpDiscoveryDuplicateIdMessage extends TcpDiscoveryAbstractMessage implements Message { /** */ private static final long serialVersionUID = 0L; - /** Node with duplicate ID. */ - private final TcpDiscoveryNode node; - /** ID of the node with duplicate ID. */ - private final UUID nodeId; - - /** - * Constructor. - * - * @param creatorNodeId Creator node ID. - * @param node Node with same ID. - */ - public TcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, TcpDiscoveryNode node) { - super(creatorNodeId); + @Order(5) + private UUID nodeId; - assert node != null; - - this.node = node; - this.nodeId = null; + /** */ + public TcpDiscoveryDuplicateIdMessage() { + // No-op. } /** @@ -61,26 +50,30 @@ public TcpDiscoveryDuplicateIdMessage(UUID creatorNodeId, UUID nodeId) { assert nodeId != null; - this.node = null; this.nodeId = nodeId; } /** * @return Node with duplicate ID. */ - public TcpDiscoveryNode node() { - return node; + public UUID nodeId() { + return nodeId; } /** - * @return Node with duplicate ID. + * @param nodeId Node with duplicate ID. */ - public UUID nodeId() { - return nodeId; + public void nodeId(UUID nodeId) { + this.nodeId = nodeId; } /** {@inheritDoc} */ @Override public String toString() { return S.toString(TcpDiscoveryDuplicateIdMessage.class, this, "super", super.toString()); } + + /** {@inheritDoc} */ + @Override public short directType() { + return 11; + } } From 75e77005d770985377e1b89bdc448402825026eb Mon Sep 17 00:00:00 2001 From: Dmitry Werner Date: Thu, 25 Dec 2025 12:29:48 +0500 Subject: [PATCH 2/2] IGNITE-27413 Use MessageSerializer for TcpDiscoveryDuplicateIdMessage increment direct type --- .../discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java index d88b9d2847afd..c78d1b5284f75 100644 --- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java +++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/messages/TcpDiscoveryDuplicateIdMessage.java @@ -74,6 +74,6 @@ public void nodeId(UUID nodeId) { /** {@inheritDoc} */ @Override public short directType() { - return 11; + return 12; } }