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

Andras Salamon commented on OOZIE-3409:
---------------------------------------

DO NOT MERGE YET

This patch fixes the {{TestLocalOozieExample}} problem.

I wanted to move ELEvaluator.checkForExistence method to a separate class, but 
I realized that we already have a {{StringUtils}} class in the package, so I 
moved it to there (and renamed it).

Because this method no longer uses EL evaluation, but only relies on String 
manipulation, I was able to simplify the code a bit.

Still need more testing (the most important one is to heck for memory leaks) 
but I upload the patch as is, because the precommit build might catch more 
problems ignored by my grind tests.

 

> Oozie Server : Possible memory leak in EL evaluation
> ----------------------------------------------------
>
>                 Key: OOZIE-3409
>                 URL: https://issues.apache.org/jira/browse/OOZIE-3409
>             Project: Oozie
>          Issue Type: Bug
>    Affects Versions: 5.1.0
>            Reporter: Praneeth
>            Assignee: Andras Salamon
>            Priority: Major
>         Attachments: OOZIE-3409-01.patch, OOZIE-3409-02.patch
>
>
> I have noticed that there is a potential memory leak in the Oozie server due 
> to one of its dependencies - {{commons-el:commons-el:1.0}}. Our oozie servers 
> have been running out of memory occasionally. It happens more often when we 
> have more activity. Upon analysis of the heap dump, it seems that the culprit 
> here is the {{org.apache.commons.el.ExpressionEvaluatorImpl}} from 
> {{commons-el}} which is used in the Oozie server through 
> {{org.apache.oozie.util.ELEvaluator}} [1] . {{ExpressionEvaluatorImpl}} uses 
> a static {{Map}} [2] to cache the EL evaluations. This map never gets 
> cleared, eventually taking up all the memory. So, in an environment with 
> heavy usage and long running oozie servers, this would lead to an OOM. The 
> configurations for workflow actions we have are possibly larger than normal 
> which is worsening the situation as the Map has to maintain larger strings.
>  # 
> [https://github.com/apache/oozie/blob/release-5.1.0/core/src/main/java/org/apache/oozie/util/ELEvaluator.java#L143]
>  # 
> [http://svn.apache.org/viewvc/commons/dormant/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java?view=markup#l94]



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

Reply via email to