[ 
https://issues.apache.org/jira/browse/YARN-10068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17008525#comment-17008525
 ] 

Anand Srinivasan commented on YARN-10068:
-----------------------------------------

Hi Prabhu Joseph,

Could you please review the patch ? Thanks.

Changes made :

(1)Call ClientResponse#close to close the inputstream when the HTTP response is 
processed successfully.

(2)Code cleanup done to avoid NPE when resp object is null.

(3)Catch RuntimeException for ClientResponse#getEntity so 
ClientResponse#getStatus can be logged in the msg properly. This helps in 
debugging issues by checking the status code of the HTTP response. Previously, 
when ClientResponse#getEntity throws an exception, tthe RuntimeException will 
be raised to the upper layers of the stack without the message getting logged.

(4)Ran mvn clean install -DskipTests to validate the new code changes.

 

Thanks and kind regards.

> TimelineV2Client may leak file descriptors creating ClientResponse objects.
> ---------------------------------------------------------------------------
>
>                 Key: YARN-10068
>                 URL: https://issues.apache.org/jira/browse/YARN-10068
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: ATSv2
>    Affects Versions: 3.0.0
>         Environment: HDP VERSION3.1.4
> AMBARI VERSION2.7.4.0
>            Reporter: Anand Srinivasan
>            Assignee: Anand Srinivasan
>            Priority: Critical
>         Attachments: YARN-10068.001.patch, image-2020-01-02-14-58-12-773.png
>
>
> Hi team,
> Code-walkthrough between v1 and v2 of TimelineClient API revealed that v2 API 
> TimelineV2ClientImpl#putObjects doesn't close ClientResponse objects under 
> success status returned from Timeline Server. ClientResponse is closed only 
> under erroneous response from the server using ClientResponse#getEntity.
> We also noticed that TimelineClient (v1) closes the ClientResponse object in 
> TimelineWriter#putEntities by calling ClientResponse#getEntity in both 
> success and error conditions from the server thereby avoiding this file 
> descriptor leak.
> Customer's original issue and the symptom was that the NodeManager went down 
> because of 'too many files open' condition where there were lots of 
> CLOSED_WAIT sockets observed between the timeline client (from NM) and the 
> timeline server hosts. 
> Could you please help resolve this issue ? Thanks.
>  



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

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to