[
https://issues.apache.org/jira/browse/NIFI-4609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16253695#comment-16253695
]
marco polo commented on NIFI-4609:
----------------------------------
Here's an example ( albeit contrived ) to expose the issue.
{code:java}
public static void main(String [] args) throws IOException,
InterruptedException {
List<Socket> sockets = new ArrayList<>();
IntStream.range(1,1000).parallel().forEach(i -> {
Socket socket = null;
try {
socket = new Socket(InetAddress.getLocalHost(),
10443);
sockets.add(socket);
} catch (IOException e) {
e.printStackTrace();
}
}
);
Thread.sleep(60000);
{code}
> RemoteSiteListener creates and starts worker threads without bound.
> --------------------------------------------------------------------
>
> Key: NIFI-4609
> URL: https://issues.apache.org/jira/browse/NIFI-4609
> Project: Apache NiFi
> Issue Type: Bug
> Reporter: marco polo
> Assignee: Mark Payne
>
> MiNiFI C++ will continually attempt to reconnect to a NiFi instance. In
> RemoteSiteListener if something happens to the connection the thread does not
> appear to go away and it is unbounded. So if you had many connections come
> in, thread.start will create n threads without bound. This was experienced on
> an RPI where something happened to the connection and we abandoned it on
> MiNiFi C++. Since we don't have insight into what's occurring on the server
> side we make an attempt to reconnect, thus creating a new Thread.
> Might suggest an ExecutorService to coordinate these threads and potentially
> an AfterExecute to perform some accounting for visibility.
> [~jeremy.dyer] can provide additional insight.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)