Details
-
Improvement
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
None
-
None
-
None
-
Docs Required, Release Notes Required
Description
When a node joins a cluster, the coordinator validates this node. But the joining node validates the cluster configurations too. The question is when. Look at
GridComponnent#onGridDataReceived(GridDiscoveryData data)
For example, at
GridClusterStateProcessor#onGridDataReceived
or at
IgniteServiceProcessor#onGridDataReceived
They are called in
ServiceImpl#processNodeAddFinishedMessage(TcpDiscoveryNodeAddFinishedMessage msg)
after
spiState = CONNECTED
`GridClusterStateProcessor` can fail here. `IgniteServiceProcessor#GridClusterStateProcessor` have to validate received service configurations before deployment and can fail here too (see #IGNITE-23202).
It seems weird that node does some validations to join cluster when it has already joined, actually. This looks like a validation and issued failure at finish of the second stage of a 2-phase commit. When every participant has already declared that it is OK and is ready to complete.
We should not do any validations with processing of `TcpDiscoveryNodeAddFinishedMessage`. As an idea, processing of `TcpDiscoveryNodeAddedMessage` is a better case.
Attachments
Issue Links
- relates to
-
IGNITE-23202 Services: node crashes when node filter class was not found in class path
- Resolved