Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-23372

Revise validation of received cluster data by a joining node.

    XMLWordPrintableJSON

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

          Activity

            People

              Unassigned Unassigned
              vladsz83 Vladimir Steshin
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: