You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ambari.apache.org by "Jonathan Hurley (JIRA)" <ji...@apache.org> on 2014/09/09 16:51:29 UTC

[jira] [Commented] (AMBARI-7221) Ambari Server REST API Memory Leak

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

Jonathan Hurley commented on AMBARI-7221:
-----------------------------------------

The cause is a problem between Jetty and Spring Security where Spring is creating a new session ID for every request. The default behavior of Spring is to create new sessions that can be reused. The Jetty sessions were being created and never invalidated since the REST APIs are stateless and don't really use sessions.

Removing session support seemed to be the most correct choice, especially since the agent root was also configured to use sessions (even though they don't). In the future, if a type of authentication model requires sessions, then we need to set IDLE timeouts so that Jetty will reap the invalidated sessions.

> Ambari Server REST API Memory Leak
> ----------------------------------
>
>                 Key: AMBARI-7221
>                 URL: https://issues.apache.org/jira/browse/AMBARI-7221
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server
>    Affects Versions: 1.6.0
>         Environment: Oracle JDK 1.7.0_45 on CentOS 6.5 64-bit
> SLES 11 SP1 64-bit with Oracle JDK 1.7 
>            Reporter: Jonathan Hurley
>            Assignee: Jonathan Hurley
>            Priority: Critical
>             Fix For: 1.7.0
>
>
> PROBLEM: When running many 1000's of REST API calls, the heap memory usage of the Ambari server slowly goes up. Forcing a garbage collection will reclaim some of the heap but it never goes back down to its starting level. Eventually the JVM is forced to do a full GC which hangs the Ambari server for several minutes and, again, doesn't free all of the heap used by the API calls.
> The Ambari server stopped working with out of heap space messages.
> STEPS TO REPRODUCE: I was able to reproduce the issue using this simple script run on the Ambari server machine:
> {{while [ 1 ]; do curl -u admin:admin http://localhost:8080/api/v1/clusters; done}}
> ACTUAL BEHAVIOR: Ambari server heap memory usage increases over time when the REST API is used repeatedly. GC does not free it.
> EXPECTED BEHAVIOR: Memory used by REST API connections should be released after a GC.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)