[ 
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)

Reply via email to