[
https://issues.apache.org/jira/browse/NIFI-8116?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hsin-Ying Lee reassigned NIFI-8116:
-----------------------------------
Assignee: Hsin-Ying Lee
> The old peers do not be deleted when the URIs of the remote process group are
> changed
> -------------------------------------------------------------------------------------
>
> Key: NIFI-8116
> URL: https://issues.apache.org/jira/browse/NIFI-8116
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 1.12.0, 1.12.1
> Reporter: Hsin-Ying Lee
> Assignee: Hsin-Ying Lee
> Priority: Major
> Labels: peer, site-to-site
>
> When we start transmitting for RPG, Peer Persistence will restore the peers
> retrieved from disk. It only checks whether the protocol has changed but it
> doesn't check the URIs.
>
> Due to the refactoring of NIFI-7467, peerStatusCache and
> getLastFetchedQueryablePeers() refer to the same object.
> We need to add a condition to check whether the URIs have been changed and
> discard the previous peer restored from the disk, or we will see RPG attempts
> to transmit data to both old and new NiFi instance and cause the errors
>
> Steps to Reproduce,
> # create a RPG and set the URIs to nifi instance A
> # transfer a flowfile (enforce the Peer Persistence to store the peers to
> disk)
> # stop transmit and change the URIs to another instance B
> # transfer flowfiles again
>
> {code:java}
> 2021-01-05 05:41:47,854 ERROR [Timer-Driven Process Thread-9]
> o.a.nifi.remote.StandardRemoteGroupPort RemoteGroupPort[name=data
> in,targets=https://nifi-cluster-a:8443/nifi] failed to communicate with
> https://nifi-cluster-a:8443/nifi because the remote instance indicates that
> the port no longer exists
> 2021-01-05 05:41:47,855 ERROR [Timer-Driven Process Thread-9]
> o.a.nifi.remote.StandardRemoteGroupPort RemoteGroupPort[name=data
> in,targets=https://nifi-cluster-a:8443/nifi] Failed to process session due to
> org.apache.nifi.processor.exception.ProcessException:
> org.apache.nifi.remote.exception.UnknownPortException:
> Peer[url=nifi://nifi-cluster-b:10433,CLOSED] indicates that port
> d106c7cb-0176-1000-0000-000072ce6099 is not known:
> org.apache.nifi.processor.exception.ProcessException:
> org.apache.nifi.remote.exception.UnknownPortException:
> Peer[url=nifi://nifi-cluster-b:10433,CLOSED] indicates that port
> d106c7cb-0176-1000-0000-000072ce6099 is not known
> org.apache.nifi.processor.exception.ProcessException:
> org.apache.nifi.remote.exception.UnknownPortException:
> Peer[url=nifi://nifi-cluster-b:10433,CLOSED] indicates that port
> d106c7cb-0176-1000-0000-000072ce6099 is not known
> at
> org.apache.nifi.remote.StandardRemoteGroupPort.onTrigger(StandardRemoteGroupPort.java:237)
> at
> org.apache.nifi.controller.AbstractPort.onTrigger(AbstractPort.java:244)
> at
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:214)
> at
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
> at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
> at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: org.apache.nifi.remote.exception.UnknownPortException:
> Peer[url=nifi://nifi-cluster-b:10433,CLOSED] indicates that port
> d106c7cb-0176-1000-0000-000072ce6099 is not known
> at
> org.apache.nifi.remote.client.socket.EndpointConnectionPool.getEndpointConnection(EndpointConnectionPool.java:258)
> at
> org.apache.nifi.remote.client.socket.SocketClient.createTransaction(SocketClient.java:127)
> at
> org.apache.nifi.remote.StandardRemoteGroupPort.onTrigger(StandardRemoteGroupPort.java:223)
> ... 11 common frames omitted
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)