[
https://issues.apache.org/jira/browse/NIFI-7255?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Simon Bence reassigned NIFI-7255:
---------------------------------
Assignee: Simon Bence
> nifi.properties configuration change can result in duplicate nodes listed in
> Cluster UI
> ---------------------------------------------------------------------------------------
>
> Key: NIFI-7255
> URL: https://issues.apache.org/jira/browse/NIFI-7255
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 1.7.0, 1.8.0, 1.9.0, 1.10.0
> Reporter: Matthew Clarke
> Assignee: Simon Bence
> Priority: Major
>
> The elements that go in to coming up with the "Node identifier" which is then
> store in local state on a NiFi node include:
> /**
> the unique identifier for the node
> */
> private final String id; /**
> the IP or hostname to use for sending requests to the node's external
> interface
> */
> private final String apiAddress; /**
> the port to use use for sending requests to the node's external interface,
> this can be HTTP API port or HTTPS API port depending on whether //TODO: .
> */
> private final int apiPort; /**
> the IP or hostname to use for sending requests to the node's internal
> interface
> */
> private final String socketAddress; /**
> the port to use for sending requests to the node's internal interface
> */
> private final int socketPort; /**
> The IP or hostname to use for sending FlowFiles when load balancing a
> connection
> */
> private final String loadBalanceAddress; /**
> the port to use for sending FlowFiles when load balancing a connection
> */
> private final int loadBalancePort; /**
> the IP or hostname that external clients should use to communicate with this
> node via Site-to-Site
> */
> private final String siteToSiteAddress; /**
> the port that external clients should use to communicate with this node via
> Site-to-Site RAW Socket protocol
> */
> private final Integer siteToSitePort; /**
> the port that external clients should use to communicate with this node via
> Site-to-Site HTTP protocol,
> this can be HTTP API port or HTTPS API port depending on whether
> siteToSiteSecure or not.
> */
> private final Integer siteToSiteHttpApiPort; /**
> whether or not site-to-site communications with this node are secure
> */
> private final Boolean siteToSiteSecure; private final Set<String>
> nodeIdentities;
> With the following fields being used to determine quality:
> apiAddress
> apiPort
> socketAddress
> socketPort
> If for example the apiPort is changed by switching from 8080 for (http) to
> 8443 (for https), the node will show up twice in the in the cluster UI (
> hostname:8443 --> connected and hostname:8080 --> disconnected). Having
> these disconnected nodes will prevent changes to the UI. Worse yet is that
> ZK may report <hostname> as the elected Cluster coordinator and end up having
> both the 8080 and 8443 node both being marked as the cluster coordinator.
> Then you may not even be able to access the cluster because requests fails to
> replicate to the Cluster coordinator because it is not connected.
> Resolving this issue requires users to shutdown NiFi, delete the local state
> directory contents, and restart NiFi.
> Downside to this resolution is any local state retained for NiFi components
> (for example processors) is lost as well.
> Suggested solution here is for NiFi to retain current node identifier field
> configuration values. If on restart loaded configurations show any change to
> those values, NiFi should clear out the previous retained node ids and create
> all new node Ids.
> Might also make sense to move the stored out of local state to make manual
> removal of this information possible without affecting state stored by
> components found in the flow.xml.
>
> The following Jira only addressed what specific configuration change that can
> result in this issue:
> https://jira.apache.org/jira/browse/NIFI-5672
--
This message was sent by Atlassian Jira
(v8.3.4#803005)