[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-17 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-15 Thread Andras Salamon (JIRA)


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

Andras Salamon commented on OOZIE-3409:
---

{{TestLocalOozieExample}} failure is caused by this patch, I need to work on it:
{noformat}
20:51:02 [INFO] ---
20:51:02 [INFO]  T E S T S
20:51:02 [INFO] ---
20:51:28 [INFO] Running org.apache.oozie.example.TestLocalOozieExample
20:51:28 [ERROR] Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time 
elapsed: 25.311 s <<< FAILURE! - in 
org.apache.oozie.example.TestLocalOozieExample
20:51:28 [ERROR] 
testLocalOozieExampleEnd(org.apache.oozie.example.TestLocalOozieExample)  Time 
elapsed: 24.524 s  <<< ERROR!
20:51:28 java.lang.NoSuchFieldError: IS_SECURITY_ENABLED
20:51:28at 
org.apache.jasper.el.ELContextImpl.(ELContextImpl.java:83)
20:51:28at 
org.apache.jasper.el.ExpressionEvaluatorImpl.parseExpression(ExpressionEvaluatorImpl.java:42)
20:51:28at 
org.apache.jasper.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:59)
20:51:28at 
org.apache.oozie.util.ELEvaluator.evaluate(ELEvaluator.java:210)
{noformat}

> 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
>
>
> 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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-03 Thread Hadoop QA (JIRA)


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

Hadoop QA commented on OOZIE-3409:
--


Testing JIRA OOZIE-3409

Cleaning local git workspace



{color:green}+1 PATCH_APPLIES{color}
{color:green}+1 CLEAN{color}
{color:red}-1 RAW_PATCH_ANALYSIS{color}
.{color:green}+1{color} the patch does not introduce any @author tags
.{color:green}+1{color} the patch does not introduce any tabs
.{color:green}+1{color} the patch does not introduce any trailing spaces
.{color:green}+1{color} the patch does not introduce any star imports
.{color:red}-1{color} the patch contains 1 line(s) longer than 132 
characters
.{color:green}+1{color} the patch adds/modifies 2 testcase(s)
{color:green}+1 RAT{color}
.{color:green}+1{color} the patch does not seem to introduce new RAT 
warnings
{color:green}+1 JAVADOC{color}
.{color:green}+1{color} Javadoc generation succeeded with the patch
.{color:green}+1{color} the patch does not seem to introduce new Javadoc 
warning(s)
.{color:orange}WARNING{color}: the current HEAD has 100 Javadoc warning(s)
{color:green}+1 COMPILE{color}
.{color:green}+1{color} HEAD compiles
.{color:green}+1{color} patch compiles
.{color:green}+1{color} the patch does not seem to introduce new javac 
warnings
{color:green}+1{color} There are no new bugs found in total.
. {color:green}+1{color} There are no new bugs found in [sharelib/hive2].
. {color:green}+1{color} There are no new bugs found in [sharelib/spark].
. {color:green}+1{color} There are no new bugs found in [sharelib/oozie].
. {color:green}+1{color} There are no new bugs found in [sharelib/pig].
. {color:green}+1{color} There are no new bugs found in [sharelib/streaming].
. {color:green}+1{color} There are no new bugs found in [sharelib/hive].
. {color:green}+1{color} There are no new bugs found in [sharelib/distcp].
. {color:green}+1{color} There are no new bugs found in [sharelib/hcatalog].
. {color:green}+1{color} There are no new bugs found in [sharelib/sqoop].
. {color:green}+1{color} There are no new bugs found in [sharelib/git].
. {color:green}+1{color} There are no new bugs found in [client].
. {color:green}+1{color} There are no new bugs found in [docs].
. {color:green}+1{color} There are no new bugs found in [tools].
. {color:green}+1{color} There are no new bugs found in 
[fluent-job/fluent-job-api].
. {color:green}+1{color} There are no new bugs found in [server].
. {color:green}+1{color} There are no new bugs found in [webapp].
. {color:green}+1{color} There are no new bugs found in [examples].
. {color:green}+1{color} There are no new bugs found in [core].
{color:green}+1 BACKWARDS_COMPATIBILITY{color}
.{color:green}+1{color} the patch does not change any JPA 
Entity/Colum/Basic/Lob/Transient annotations
.{color:green}+1{color} the patch does not modify JPA files
{color:red}-1 TESTS{color}
.Tests run: 3106
.Tests failed : 0
.Tests in error   : 2
.Tests timed out  : 0

{color:red}-1{color} [ERROR] There are [2] test errors in [examples]. Listing 
only the first [5] ones
testLocalOozieExampleEnd:org.apache.oozie.example.TestLocalOozieExample
testLocalOozieExampleKill:org.apache.oozie.example.TestLocalOozieExample

Check console output for the full list of errors/failures
.{color:orange}Tests failed at first run:{color}
TestPurgeXCommand#testPurgeCoordWithWFChild1
.For the complete list of flaky tests, see TEST-SUMMARY-FULL files.
{color:green}+1 DISTRO{color}
.{color:green}+1{color} distro tarball builds with the patch 


{color:red}*-1 Overall result, please check the reported -1(s)*{color}

{color:red}. There is at least one warning, please check{color}

The full output of the test-patch run is available at

. https://builds.apache.org/job/PreCommit-OOZIE-Build/961/



> 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
>
>
> 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 

[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-03 Thread Praneeth (JIRA)


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

Praneeth commented on OOZIE-3409:
-

Thanks [~asalamon74]. {{tomcat-jasper}} seems to be a clean approach.

> 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
>
>
> 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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-03 Thread Hadoop QA (JIRA)


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

Hadoop QA commented on OOZIE-3409:
--

PreCommit-OOZIE-Build started


> 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
>
>
> 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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-03 Thread Andras Piros (JIRA)


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

Andras Piros commented on OOZIE-3409:
-

Thanks [~asalamon74] for the investigation. Can you make a try w/ 
{{org.apache.tomcat:jasper-el}} latest version running w/ Oozie's Jetty 9?

> 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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-03 Thread Andras Salamon (JIRA)


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

Andras Salamon commented on OOZIE-3409:
---

In the EL-1 bugreport they suggest to use tomcat's jasper el instead of commons 
el: [https://markmail.org/message/nm4c3zwzmxhuhplu]

 

> 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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-03 Thread Andras Salamon (JIRA)


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

Andras Salamon commented on OOZIE-3409:
---

The commons.el bug reported in 2005.

> 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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2019-01-02 Thread Andras Salamon (JIRA)


[ 
https://issues.apache.org/jira/browse/OOZIE-3409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2018-12-20 Thread Praneeth (JIRA)


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

Praneeth commented on OOZIE-3409:
-

I have just noticed that {{org.apache.commons.el.ExpressionEvaluatorImpl}} is 
used only in one place in {{oozie-core}} . As a quick dirty fix, we could 
extend the class and override the evaluation method to skip writing to the map 
when the flag is disabled.

> 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
>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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2018-12-20 Thread Praneeth (JIRA)


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

Praneeth commented on OOZIE-3409:
-

Actually, I don't think it is just the actions that have EL expressions that 
sit in the cache, I think the parsing is taking place for every action (or some 
part of workflow config), whether or not it has an EL (call to parsing takes 
place irrespectively) [1]. If it doesn't have an EL, the cache would store the 
same content as both key and value. I was able to verify this by looking at the 
contents of the cache.

This is only to point out that it is not just for EL based content. I do not 
have a good proposal for a solution given the dependency is dormant. What is 
the general practice for fixes to dormant projects ? Is it to try to find an 
alternative and if none is found, try to revive the project ?

I agree that it is probably a problem to few deployments like ours which are 
long running and relatively workflows, but this crashes our instances once in 
2-3 months.

 
 # I was checking the usage of 
[https://github.com/apache/oozie/blob/master/core/src/main/java/org/apache/oozie/util/ELEvaluator.java#L201.]

> 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
>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)


[jira] [Commented] (OOZIE-3409) Oozie Server : Possible memory leak in EL evaluation

2018-12-20 Thread Andras Salamon (JIRA)


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

Andras Salamon commented on OOZIE-3409:
---

Yes, {{org.apache.commons.el.ExpressionEvaluatorImpl}} has static maps which 
never gets clear. There is a constructor in the class which takes a boolean 
{{pBypassCache}} argument, but it only bypass the reading of the cache, not the 
writing: 
[http://svn.apache.org/viewvc/commons/dormant/el/trunk/src/java/org/apache/commons/el/ExpressionEvaluatorImpl.java?view=markup#l256]

So theoretically it's true that adding more and more different EL expression 
string will result an OOM. I But it will take probably a really large number to 
reach that point.

Fixing that would not be easy, since commons-el is alrady dormant (latest 
release was in 2003).

> 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
>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)