[ 
https://issues.apache.org/jira/browse/NIFI-5770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ed Berezitsky updated NIFI-5770:
--------------------------------
    Description: 
ExecuteScript with Jython engine has memory leak.
 It uses JythonScriptEngineConfigurator class to configure jython execution 
environment.
 The problem is in the line:
{code:java}
engine.eval("sys.path.append('" + modulePath + "')");{code}
There is no check if a module has already been added previously.
 As a result, with each execution (onTrigger), string value of module property 
is being appended, and never reset.

Although InvokeScriptedProcessor uses the same engine configurator, memory leak 
is not reproducable in it,
 because ISP builds the engine and compile the code only once (and rebuilds 
every time any relevant property is changed).

 

  was:
ExecuteScript with Jython engine has memory leak.
It uses JythonScriptEngineConfigurator class to configure jython execution 
environment.
The problem is in the line:
{code:java}
engine.eval("sys.path.append('" + modulePath + "')");{code}
There is no check if a module has already been added previously.
As a result, with each execution (onTrigger), string value of module property 
is being appended, and never reset.

Although InvokeScriptedProcessor uses the same engine configurator, memory leak 
is not reproducable in it,
because ISP builds the engine and compile the code only once (and rebuilds 
every time any relevant property is changed).

 


> Memory Leak in ExecuteScript
> ----------------------------
>
>                 Key: NIFI-5770
>                 URL: https://issues.apache.org/jira/browse/NIFI-5770
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.8.0
>            Reporter: Ed Berezitsky
>            Assignee: Ed Berezitsky
>            Priority: Major
>              Labels: features, performance
>         Attachments: ExecuteScriptMemLeak.xml, jython_modules.zip
>
>
> ExecuteScript with Jython engine has memory leak.
>  It uses JythonScriptEngineConfigurator class to configure jython execution 
> environment.
>  The problem is in the line:
> {code:java}
> engine.eval("sys.path.append('" + modulePath + "')");{code}
> There is no check if a module has already been added previously.
>  As a result, with each execution (onTrigger), string value of module 
> property is being appended, and never reset.
> Although InvokeScriptedProcessor uses the same engine configurator, memory 
> leak is not reproducable in it,
>  because ISP builds the engine and compile the code only once (and rebuilds 
> every time any relevant property is changed).
>  



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

Reply via email to