[ https://issues.apache.org/jira/browse/NIFI-5585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16622632#comment-16622632 ]
ASF GitHub Bot commented on NIFI-5585: -------------------------------------- Github user markap14 commented on a diff in the pull request: https://github.com/apache/nifi/pull/3010#discussion_r219294246 --- Diff: nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-cluster/src/main/java/org/apache/nifi/cluster/coordination/node/NodeClusterCoordinator.java --- @@ -841,6 +900,34 @@ void notifyOthersOfNodeStatusChange(final NodeConnectionStatus updatedStatus, fi senderListener.notifyNodeStatusChange(nodesToNotify, message); } + private void decommissionAsynchronously(final DecommissionMessage request, final int attempts, final int retrySeconds) { + final Thread decommissionThread = new Thread(new Runnable() { + @Override + public void run() { + final NodeIdentifier nodeId = request.getNodeId(); + + for (int i = 0; i < attempts; i++) { + try { + senderListener.decommission(request); + reportEvent(nodeId, Severity.INFO, "Node was decommissioned due to " + request.getExplanation()); + return; + } catch (final Exception e) { + logger.error("Failed to notify {} that it has been decommissioned from the cluster due to {}", request.getNodeId(), request.getExplanation()); --- End diff -- We should probably log the stack trace here as well. > Decommision Nodes from Cluster > ------------------------------ > > Key: NIFI-5585 > URL: https://issues.apache.org/jira/browse/NIFI-5585 > Project: Apache NiFi > Issue Type: Improvement > Components: Core Framework > Affects Versions: 1.7.1 > Reporter: Jeff Storck > Assignee: Jeff Storck > Priority: Major > > Allow a node in the cluster to be decommissioned, rebalancing flowfiles on > the node to be decommissioned to the other active nodes. This work depends > on NIFI-5516. > Similar to the client sending PUT request a DISCONNECTING message to > cluster/nodes/\{id}, a DECOMMISSIONING message can be sent as a PUT request > to the same URI to initiate a DECOMMISSION for a DISCONNECTED node. The > DECOMMISSIONING request will be idempotent. > The steps to decommission a node and remove it from the cluster are: > # Send request to disconnect the node > # Once disconnect completes, send request to decommission the node. > # Once decommission completes, send request to delete node. > When an error occurs and the node can not complete decommissioning, the user > can: > # Send request to delete the node from the cluster > # Diagnose why the node had issues with the decommission (out of memory, no > network connection, etc) and address the issue > # Restart NiFi on the node to so that it will reconnect to the cluster > # Go through the steps to decommission and remove a node > Toolkit CLI commands for retrieving a list of nodes and > disconnecting/decommissioning/deleting nodes have been added. -- This message was sent by Atlassian JIRA (v7.6.3#76005)