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)