[ 
https://issues.apache.org/jira/browse/NIFI-4837?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Joseph Percivall updated NIFI-4837:
-----------------------------------
    Description: 
When you have multiple HandleHTTPRequest processors trying to listen on the 
same port, for every Listen attempt NiFi builds a new thread and never recycles 
the old thread which eventually leads to NiFi shutting down when reaching the 
OS limit of the number of threads (default is 10.000). 
The following error can be seen in nifi-app.log: 

Caused by: java.lang.OutOfMemoryError: unable to create new native thread 
at java.lang.Thread.start0(Native Method) 
at java.lang.Thread.start(Thread.java:714) 

This has happened before with version 1.2 and probably even with older 
versions. but I could also replicate the issue with the latest 1.5 version. 
Steps to replicate the issue: 

1) build a simple flow with 2 HandleHTTPRequest processors listening on the 
same port. 

!image-2018-02-02-11-14-51-964.png!

2) Start the processors. 

  —  The second HandleHTTPRequest processor starts logging following as 
expected:

2018-02-02 16:18:29,518 ERROR [Timer-Driven Process Thread-3] 
o.a.n.p.standard.HandleHttpRequest 
HandleHttpRequest[id=af013c62-b26f-1eeb-ae81-8423c70bdc7f] Failed to process 
session due to org.apache.nifi.processor.exception.ProcessException: Failed to 
initialize the server: {}
org.apache.nifi.processor.exception.ProcessException: Failed to initialize the 
server
....
Caused by: java.net.BindException: Address already in use
...
... 12 common frames omitted

 

3) Go to the Summary section in NiFi and watch the number of threads going up 
to 9959.

!image-2018-02-02-11-16-52-389.png!

 

With above, I had processors scheduled on primary node only as to not affect 
every node.

If you stop the second HandleHTTPRequest processor the threads stop climbing, 
but are not released.

 

After this, NiFi will soon stop.

 

A restart of NIFi is required to release these threads.

 

  was:
When you have multiple HandleHTTPRequest processors trying to listen on the 
same port, for every Listen attempt NiFi builds a new thread and never recycles 
the old thread which eventually leads to NiFi shutting down when reaching the 
OS limit of the number of threads (default is 10.000). 
The following error can be seen in nifi-app.log: 

Caused by: java.lang.OutOfMemoryError: unable to create new native thread 
at java.lang.Thread.start0(Native Method) 
at java.lang.Thread.start(Thread.java:714) 



This has happened before with HDF 3.0.1 and probably even with older versions. 
but I could also replicate the issue with the latest HDF 3.1. 
Steps to replicate the issue: 

1) build a simple flow with 2 HandleHTTPRequest processors listening on the 
same port. 

!image-2018-02-02-11-14-51-964.png!

2) Start the processors. 

  —  The second HandleHTTPRequest processor starts logging following as 
expected:

2018-02-02 16:18:29,518 ERROR [Timer-Driven Process Thread-3] 
o.a.n.p.standard.HandleHttpRequest 
HandleHttpRequest[id=af013c62-b26f-1eeb-ae81-8423c70bdc7f] Failed to process 
session due to org.apache.nifi.processor.exception.ProcessException: Failed to 
initialize the server: {}
org.apache.nifi.processor.exception.ProcessException: Failed to initialize the 
server
....
Caused by: java.net.BindException: Address already in use
...
 ... 12 common frames omitted

 


3) Go to the Summary section in NiFi and watch the number of threads going up 
to 9959.

!image-2018-02-02-11-16-52-389.png!

 

With above, I had processors scheduled on primary node only as to not affect 
every node.

If you stop the second HandleHTTPRequest processor the threads stop climbing, 
but are not released.

 

After this, NiFi will soon stop.

 

A restart of NIFi is required to release these threads.

 


> Thread leak on HandleHTTPRequest processor
> ------------------------------------------
>
>                 Key: NIFI-4837
>                 URL: https://issues.apache.org/jira/browse/NIFI-4837
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.2.0, 1.3.0, 1.4.0, 1.5.0
>         Environment: CENTOS 7
>            Reporter: Matthew Clarke
>            Priority: Blocker
>         Attachments: image-2018-02-02-11-14-51-964.png, 
> image-2018-02-02-11-16-52-389.png
>
>
> When you have multiple HandleHTTPRequest processors trying to listen on the 
> same port, for every Listen attempt NiFi builds a new thread and never 
> recycles the old thread which eventually leads to NiFi shutting down when 
> reaching the OS limit of the number of threads (default is 10.000). 
> The following error can be seen in nifi-app.log: 
> Caused by: java.lang.OutOfMemoryError: unable to create new native thread 
> at java.lang.Thread.start0(Native Method) 
> at java.lang.Thread.start(Thread.java:714) 
> This has happened before with version 1.2 and probably even with older 
> versions. but I could also replicate the issue with the latest 1.5 version. 
> Steps to replicate the issue: 
> 1) build a simple flow with 2 HandleHTTPRequest processors listening on the 
> same port. 
> !image-2018-02-02-11-14-51-964.png!
> 2) Start the processors. 
>   —  The second HandleHTTPRequest processor starts logging following as 
> expected:
> 2018-02-02 16:18:29,518 ERROR [Timer-Driven Process Thread-3] 
> o.a.n.p.standard.HandleHttpRequest 
> HandleHttpRequest[id=af013c62-b26f-1eeb-ae81-8423c70bdc7f] Failed to process 
> session due to org.apache.nifi.processor.exception.ProcessException: Failed 
> to initialize the server: {}
> org.apache.nifi.processor.exception.ProcessException: Failed to initialize 
> the server
> ....
> Caused by: java.net.BindException: Address already in use
> ...
> ... 12 common frames omitted
>  
> 3) Go to the Summary section in NiFi and watch the number of threads going up 
> to 9959.
> !image-2018-02-02-11-16-52-389.png!
>  
> With above, I had processors scheduled on primary node only as to not affect 
> every node.
> If you stop the second HandleHTTPRequest processor the threads stop climbing, 
> but are not released.
>  
> After this, NiFi will soon stop.
>  
> A restart of NIFi is required to release these threads.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to