[
https://issues.apache.org/jira/browse/IGNITE-24369?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Roman Puchkovskiy updated IGNITE-24369:
---------------------------------------
Description:
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.
was:
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 gets.
This has to be investigated.
> 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)