You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2025/06/05 15:04:00 UTC
[jira] [Commented] (IGNITE-24369) ProbeMessage arrives at client handshake handler
[ https://issues.apache.org/jira/browse/IGNITE-24369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17956377#comment-17956377 ]
Roman Puchkovskiy commented on IGNITE-24369:
--------------------------------------------
{code:java}
14:22:08 [2025-06-04T14:22:08,146][ERROR][icft_tscoisd_40000-network-worker-2][HandshakeHandler] Error when performing handshake
14:22:08 java.lang.AssertionError: Wrong initiator handshake flow, message is ProbeMessageImpl [dummy=0]
14:22:08 at org.apache.ignite.internal.network.recovery.RecoveryInitiatorHandshakeManager.onMessage(RecoveryInitiatorHandshakeManager.java:214) ~[ignite-network-9.1.127-SNAPSHOT.jar:?]
14:22:08 at org.apache.ignite.internal.network.netty.HandshakeHandler.channelRead(HandshakeHandler.java:98) ~[ignite-network-9.1.127-SNAPSHOT.jar:?]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) [netty-codec-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) [netty-codec-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.handler.flush.FlushConsolidationHandler.channelRead(FlushConsolidationHandler.java:152) [netty-handler-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1357) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:868) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:796) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:732) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:658) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) [netty-transport-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:998) [netty-common-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.119.Final.jar:4.1.119.Final]
14:22:08 at java.base/java.lang.Thread.run(Thread.java:833) [?:?]{code}
{noformat}
{noformat}
> ProbeMessage arrives at client handshake handler
> ------------------------------------------------
>
> Key: IGNITE-24369
> URL: https://issues.apache.org/jira/browse/IGNITE-24369
> Project: Ignite
> Issue Type: Bug
> Reporter: Roman Puchkovskiy
> Priority: Major
> Labels: ignite-3
>
> When a networking protocol handshake (server-to-server) occurs, one of the participants is called a 'client', another is a 'server'. Client sends a ProbeMessage to make sure we detect a broken channel. So, only the server can get a ProbeMessage. There is the corresponding code in RecoveryServerHandshakeManager:
>
> {{if (message instanceof ProbeMessage) {}}
> {{ // No action required, just ignore it.}}
> {{ return;}}
> {{}}}
>
> As the client should never get such a message, there is no such code, so, if ProbeMessage arrives in RecoveryClientHandshakeManager#onMessage(), an assertion should happen. And sometimes we actually see such assertions (though very rarely):
>
> java.lang.AssertionError: Wrong client handshake flow, message is ProbeMessageImpl [dummy=0]
>
> This means that sometimes a client gets a message that it should never get. This has to be investigated.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)