Pierre Villard created NIFI-16490:
-------------------------------------

             Summary: Return cluster members from the cluster coordinator 
during flow synchronization
                 Key: NIFI-16490
                 URL: https://issues.apache.org/jira/browse/NIFI-16490
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Core Framework
            Reporter: Pierre Villard
            Assignee: Pierre Villard


FlowController.getClusterMembers() currently returns an empty set until 
isClustered() is true. When a node connects to a cluster, 
StandardFlowService.loadFromConnectionResponse loads the full list of node 
connection statuses from the connection response into the local cluster 
coordinator (initializeNodeConnectionState). It does this before the flow sync 
(loadFromBytes) runs. However, clustered is only set to true after the sync 
completes.

Controller Services and other components are enabled during that sync. During 
that window, NodeTypeProvider.getClusterMembers() returns nothing, even though 
the node already knows the cluster membership, joining node included. So 
components cannot tell a single-node cluster restarting apart from a node 
joining an existing multi-node cluster. Either case looks like zero members.

This change updates getClusterMembers() to return the coordinator's node list 
whenever the node is configured for clustering, not only once isClustered() is 
true. Reading the list requires no FlowController locks, consistent with 
NIFI-16153 and NIFI-16383. Standalone (non-clustered) instances keep returning 
an empty set.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to