Mark Payne created NIFI-6894:
--------------------------------

             Summary: When node [re]joins cluster, if browser is pointed at 
that node, it can reject any flow modifications due to incorrect revision
                 Key: NIFI-6894
                 URL: https://issues.apache.org/jira/browse/NIFI-6894
             Project: Apache NiFi
          Issue Type: Bug
          Components: Core UI
            Reporter: Mark Payne


Because the UI sometimes makes several asynchronous requests simultaneously, 
when it receives a revision back from the server, it does not blindly accept 
it. Instead, it holds onto the Revision with the greatest version number. This 
works well in most cases. However, there is an edge case where it causes 
problems:

In a cluster with at least 2 nodes, disconnect one of them.
Go to the disconnected node and move some processors around. Don't make any 
other modifications, as doing so may prevent the node from rejoining the 
cluster.
In another browser tab go back to the cluster and request that the node rejoin.

Once the node has rejoined, the browser tab that is already open to the 
(previously) disconnected node does not get the new revisions. Because some 
modifications were made while it was disconnected, it may now locally have 
revision 10, for instance, while the cluster thinks the revision is 2. As a 
result, this browser tab shows the components in their old locations with the 
wrong Revision. Any attempt to modify one of those components now will fail, 
because the Revision is incorrect.

Given the scenario laid out here, it may seem a bit contrived. This is because 
it's a fairly contrived example to recreate the scenario. However, the same 
thing can happen when a new node joins a cluster that is behind a firewall, 
such as in a Kubernetes environment. The revisions that previously were loaded 
in the UI may no longer be the correct revisions.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to