[
https://issues.apache.org/jira/browse/OOZIE-3409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16732123#comment-16732123
]
Andras Salamon commented on OOZIE-3409:
---------------------------------------
We could create a hack solution like:
# Extending {{ExpressionEvaluatorImpl}} and not using the cache
# Counting EL expression evaluations and drop {{ExpressionEvaluatorImpl}} and
start over after a while
The best solution is to replace the obsolete {{commons.el}}. I've checked our
code, it seems to be this is the only place we use {{commons.el}} in Oozie.
There are seveal EL evaluators listed here:
[https://stackoverflow.com/a/17051440/21348] We might check JEXL (
[http://commons.apache.org/proper/commons-jexl/] ) since we already use that
in other parts of Oozie. Of course we have to be sure it does not have the same
bug.
> 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
>
> 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)