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

Thierry PRATS updated NIFI-8494:
--------------------------------
    Description: 
InvokeScriptedProcessor works well when started for the first time.

The Processor become invalid after stopped and cannot be started anymore, also 
after change parameters. This message appears : Unable to load script: No 
processor was defined by the script.

We have to delete and recreate the Processor to start it.

The Processor is configured like this :
 Script Engine : python
 Script body :
{code:java}
from org.apache.nifi.processor import Processor, Relationship
from java.lang import Throwableclass E():
    def __init__(self):
        pass
    def executeScript(self,session, context, log, REL_SUCCESS, REL_FAILURE):
        flowFile = session.get() 
        if (flowFile != None):
            flowFile = session.putAttribute(flowFile, 'myAttr', 'myValue')
            session.transfer(flowFile, REL_SUCCESS)
#end classclass JythonProcessor(Processor):   
    REL_SUCCESS = Relationship.Builder().name("success").description('FlowFiles 
that were successfully processed are routed here').build()
    REL_FAILURE = Relationship.Builder().name("failure").description('FlowFiles 
that were not successfully processed are routed here').build()
    log = None
    e = E()
    def initialize(self,context):
        self.log = context.logger
    def getRelationships(self):
        return set([self.REL_SUCCESS, self.REL_FAILURE])
    def validate(self,context):
        pass
    def onPropertyModified(self,descriptor, oldValue, newValue):
        pass
    def getPropertyDescriptors(self):
        return []
    def getIdentifier(self):
        return None    
    def onTrigger(self,context, sessionFactory):
        session = sessionFactory.createSession()
        try:
            self.e.executeScript(session, context, self.log, self.REL_SUCCESS, 
self.REL_FAILURE)
            session.commit()
        except Throwable, t:
            self.log.error('{} failed to process due to {}; rolling back 
session', [self, t])
            session.rollback(true)
            raise t
#end classprocessor = JythonProcessor()
{code}
The logs :
{noformat}
2021-04-28 14:03:06,438 INFO [NiFi Web Server-93413] 
o.a.nifi.groups.StandardProcessGroup 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] added to 
StandardProcessGroup[identifier=46a63780-e64b-1f50-ffff-ffffe1229048,name=TEST_ISP]
2021-04-28 14:03:43,335 INFO [NiFi Web Server-93416] 
o.a.n.c.s.StandardProcessScheduler Starting 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411]
2021-04-28 14:03:43,335 INFO [NiFi Web Server-93416] 
o.a.n.controller.StandardProcessorNode Starting 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411]
2021-04-28 14:03:43,336 INFO [Timer-Driven Process Thread-1] 
o.a.n.c.s.TimerDrivenSchedulingAgent Scheduled 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run with 1 
threads   0
21-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.c.s.StandardProcessScheduler Stopping 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
2021-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.controller.StandardProcessorNode Stopping processor: 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
2021-04-28 14:04:03,432 INFO [Timer-Driven Process Thread-4] 
o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run   0
21-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.c.s.StandardProcessScheduler Stopping 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
2021-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.controller.StandardProcessorNode Stopping processor: 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
2021-04-28 14:04:03,432 INFO [Timer-Driven Process Thread-4] 
o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run   
2021-04-28 14:04:06,412 ERROR [Validate Components Thread-5] 
o.a.n.p.script.InvokeScriptedProcessor 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] Unable to load 
script: No processor was defined by the script.: javax.script.ScriptException: 
No processor was defined by the script. javax.script.ScriptException: No 
processor was defined by the script.         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.reloadScript(InvokeScriptedProcessor.java:421)
         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.reloadScriptBody(InvokeScriptedProcessor.java:310)
         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.setup(InvokeScriptedProcessor.java:230)
         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.customValidate(InvokeScriptedProcessor.java:479)
         at 
org.apache.nifi.components.AbstractConfigurableComponent.validate(AbstractConfigurableComponent.java:145)
         at 
org.apache.nifi.controller.AbstractComponentNode.computeValidationErrors(AbstractComponentNode.java:609)
         at 
org.apache.nifi.controller.StandardProcessorNode.computeValidationErrors(StandardProcessorNode.java:1054)
         at 
org.apache.nifi.controller.AbstractComponentNode.performValidation(AbstractComponentNode.java:576)
         at 
org.apache.nifi.controller.AbstractComponentNode.performValidation(AbstractComponentNode.java:590)
         at 
org.apache.nifi.components.validation.StandardValidationTrigger.trigger(StandardValidationTrigger.java:52)
         at 
org.apache.nifi.components.validation.TriggerValidationTask.run(TriggerValidationTask.java:50)
         at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)        
 at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
         at 
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)      
   at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
         at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
         at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
         at java.base/java.lang.Thread.run(Thread.java:834)       {noformat}
 

  was:
InvokeScriptedProcessor works well when started for the first time.

The Processor become invalid after stopped and cannot be started anymore, also 
after change parameters. This message appears : Unable to load script: No 
processor was defined by the script.

We have to delete and recreate the Processor to start it.

The Processor is configured like this :
Script Engine : python
 Script body :
{code:java}
from org.apache.nifi.processor import Processor, Relationship
from java.lang import Throwableclass E():
    def __init__(self):
        pass
    def executeScript(self,session, context, log, REL_SUCCESS, REL_FAILURE):
        flowFile = session.get() 
        if (flowFile != None):
            flowFile = session.putAttribute(flowFile, 'myAttr', 'myValue')
            session.transfer(flowFile, REL_SUCCESS)
#end classclass JythonProcessor(Processor):   
    REL_SUCCESS = Relationship.Builder().name("success").description('FlowFiles 
that were successfully processed are routed here').build()
    REL_FAILURE = Relationship.Builder().name("failure").description('FlowFiles 
that were not successfully processed are routed here').build()
    log = None
    e = E()
    def initialize(self,context):
        self.log = context.logger
    def getRelationships(self):
        return set([self.REL_SUCCESS, self.REL_FAILURE])
    def validate(self,context):
        pass
    def onPropertyModified(self,descriptor, oldValue, newValue):
        pass
    def getPropertyDescriptors(self):
        return []
    def getIdentifier(self):
        return None    
    def onTrigger(self,context, sessionFactory):
        session = sessionFactory.createSession()
        try:
            self.e.executeScript(session, context, self.log, self.REL_SUCCESS, 
self.REL_FAILURE)
            session.commit()
        except Throwable, t:
            self.log.error('{} failed to process due to {}; rolling back 
session', [self, t])
            session.rollback(true)
            raise t
#end classprocessor = JythonProcessor()
{code}
The logs :
{noformat}
2021-04-28 14:03:06,438 INFO [NiFi Web Server-93413] 
o.a.nifi.groups.StandardProcessGroup 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] added to 
StandardProcessGroup[identifier=46a63780-e64b-1f50-ffff-ffffe1229048,name=TEST_ISP]
  2021-04-28 14:03:43,335 INFO [NiFi Web Server-93416] 
o.a.n.c.s.StandardProcessScheduler Starting 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 2021-04-28 
14:03:43,335 INFO [NiFi Web Server-93416] 
o.a.n.controller.StandardProcessorNode Starting 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 2021-04-28 
14:03:43,336 INFO [Timer-Driven Process Thread-1] 
o.a.n.c.s.TimerDrivenSchedulingAgent Scheduled 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run with 1 
threads   021-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.c.s.StandardProcessScheduler Stopping 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 2021-04-28 
14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.controller.StandardProcessorNode Stopping processor: 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 2021-04-28 
14:04:03,432 INFO [Timer-Driven Process Thread-4] 
o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run   
021-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.c.s.StandardProcessScheduler Stopping 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 2021-04-28 
14:04:03,432 INFO [NiFi Web Server-91830] 
o.a.n.controller.StandardProcessorNode Stopping processor: 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 2021-04-28 
14:04:03,432 INFO [Timer-Driven Process Thread-4] 
o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run   
2021-04-28 14:04:06,412 ERROR [Validate Components Thread-5] 
o.a.n.p.script.InvokeScriptedProcessor 
InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] Unable to load 
script: No processor was defined by the script.: javax.script.ScriptException: 
No processor was defined by the script. javax.script.ScriptException: No 
processor was defined by the script.         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.reloadScript(InvokeScriptedProcessor.java:421)
         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.reloadScriptBody(InvokeScriptedProcessor.java:310)
         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.setup(InvokeScriptedProcessor.java:230)
         at 
org.apache.nifi.processors.script.InvokeScriptedProcessor.customValidate(InvokeScriptedProcessor.java:479)
         at 
org.apache.nifi.components.AbstractConfigurableComponent.validate(AbstractConfigurableComponent.java:145)
         at 
org.apache.nifi.controller.AbstractComponentNode.computeValidationErrors(AbstractComponentNode.java:609)
         at 
org.apache.nifi.controller.StandardProcessorNode.computeValidationErrors(StandardProcessorNode.java:1054)
         at 
org.apache.nifi.controller.AbstractComponentNode.performValidation(AbstractComponentNode.java:576)
         at 
org.apache.nifi.controller.AbstractComponentNode.performValidation(AbstractComponentNode.java:590)
         at 
org.apache.nifi.components.validation.StandardValidationTrigger.trigger(StandardValidationTrigger.java:52)
         at 
org.apache.nifi.components.validation.TriggerValidationTask.run(TriggerValidationTask.java:50)
         at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)        
 at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
         at 
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)      
   at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
         at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
         at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
         at java.base/java.lang.Thread.run(Thread.java:834)       {noformat}
 


> InvokeScriptedProcessor become invalid after stopped
> ----------------------------------------------------
>
>                 Key: NIFI-8494
>                 URL: https://issues.apache.org/jira/browse/NIFI-8494
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: 1.13.2
>         Environment: Ubuntu 20.04 LTS
> openjdk version "11.0.10" 2021-01-19
>            Reporter: Thierry PRATS
>            Priority: Trivial
>              Labels: InvokeScriptedProcessor, nifi
>             Fix For: 1.2.0, 1.11.3
>
>
> InvokeScriptedProcessor works well when started for the first time.
> The Processor become invalid after stopped and cannot be started anymore, 
> also after change parameters. This message appears : Unable to load script: 
> No processor was defined by the script.
> We have to delete and recreate the Processor to start it.
> The Processor is configured like this :
>  Script Engine : python
>  Script body :
> {code:java}
> from org.apache.nifi.processor import Processor, Relationship
> from java.lang import Throwableclass E():
>     def __init__(self):
>         pass
>     def executeScript(self,session, context, log, REL_SUCCESS, REL_FAILURE):
>         flowFile = session.get() 
>         if (flowFile != None):
>             flowFile = session.putAttribute(flowFile, 'myAttr', 'myValue')
>             session.transfer(flowFile, REL_SUCCESS)
> #end classclass JythonProcessor(Processor):   
>     REL_SUCCESS = 
> Relationship.Builder().name("success").description('FlowFiles that were 
> successfully processed are routed here').build()
>     REL_FAILURE = 
> Relationship.Builder().name("failure").description('FlowFiles that were not 
> successfully processed are routed here').build()
>     log = None
>     e = E()
>     def initialize(self,context):
>         self.log = context.logger
>     def getRelationships(self):
>         return set([self.REL_SUCCESS, self.REL_FAILURE])
>     def validate(self,context):
>         pass
>     def onPropertyModified(self,descriptor, oldValue, newValue):
>         pass
>     def getPropertyDescriptors(self):
>         return []
>     def getIdentifier(self):
>         return None    
>     def onTrigger(self,context, sessionFactory):
>         session = sessionFactory.createSession()
>         try:
>             self.e.executeScript(session, context, self.log, 
> self.REL_SUCCESS, self.REL_FAILURE)
>             session.commit()
>         except Throwable, t:
>             self.log.error('{} failed to process due to {}; rolling back 
> session', [self, t])
>             session.rollback(true)
>             raise t
> #end classprocessor = JythonProcessor()
> {code}
> The logs :
> {noformat}
> 2021-04-28 14:03:06,438 INFO [NiFi Web Server-93413] 
> o.a.nifi.groups.StandardProcessGroup 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] added to 
> StandardProcessGroup[identifier=46a63780-e64b-1f50-ffff-ffffe1229048,name=TEST_ISP]
> 2021-04-28 14:03:43,335 INFO [NiFi Web Server-93416] 
> o.a.n.c.s.StandardProcessScheduler Starting 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411]
> 2021-04-28 14:03:43,335 INFO [NiFi Web Server-93416] 
> o.a.n.controller.StandardProcessorNode Starting 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411]
> 2021-04-28 14:03:43,336 INFO [Timer-Driven Process Thread-1] 
> o.a.n.c.s.TimerDrivenSchedulingAgent Scheduled 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run with 
> 1 threads   0
> 21-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
> o.a.n.c.s.StandardProcessScheduler Stopping 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
> 2021-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
> o.a.n.controller.StandardProcessorNode Stopping processor: 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
> 2021-04-28 14:04:03,432 INFO [Timer-Driven Process Thread-4] 
> o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run   0
> 21-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
> o.a.n.c.s.StandardProcessScheduler Stopping 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
> 2021-04-28 14:04:03,432 INFO [NiFi Web Server-91830] 
> o.a.n.controller.StandardProcessorNode Stopping processor: 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] 
> 2021-04-28 14:04:03,432 INFO [Timer-Driven Process Thread-4] 
> o.a.n.c.s.TimerDrivenSchedulingAgent Stopped scheduling 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] to run   
> 2021-04-28 14:04:06,412 ERROR [Validate Components Thread-5] 
> o.a.n.p.script.InvokeScriptedProcessor 
> InvokeScriptedProcessor[id=46a64d6b-e64b-1f50-ffff-ffffc26b9411] Unable to 
> load script: No processor was defined by the script.: 
> javax.script.ScriptException: No processor was defined by the script. 
> javax.script.ScriptException: No processor was defined by the script.         
> at 
> org.apache.nifi.processors.script.InvokeScriptedProcessor.reloadScript(InvokeScriptedProcessor.java:421)
>          at 
> org.apache.nifi.processors.script.InvokeScriptedProcessor.reloadScriptBody(InvokeScriptedProcessor.java:310)
>          at 
> org.apache.nifi.processors.script.InvokeScriptedProcessor.setup(InvokeScriptedProcessor.java:230)
>          at 
> org.apache.nifi.processors.script.InvokeScriptedProcessor.customValidate(InvokeScriptedProcessor.java:479)
>          at 
> org.apache.nifi.components.AbstractConfigurableComponent.validate(AbstractConfigurableComponent.java:145)
>          at 
> org.apache.nifi.controller.AbstractComponentNode.computeValidationErrors(AbstractComponentNode.java:609)
>          at 
> org.apache.nifi.controller.StandardProcessorNode.computeValidationErrors(StandardProcessorNode.java:1054)
>          at 
> org.apache.nifi.controller.AbstractComponentNode.performValidation(AbstractComponentNode.java:576)
>          at 
> org.apache.nifi.controller.AbstractComponentNode.performValidation(AbstractComponentNode.java:590)
>          at 
> org.apache.nifi.components.validation.StandardValidationTrigger.trigger(StandardValidationTrigger.java:52)
>          at 
> org.apache.nifi.components.validation.TriggerValidationTask.run(TriggerValidationTask.java:50)
>          at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)      
>    at 
> java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
>          at 
> java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)    
>      at 
> java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
>          at 
> java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
>          at 
> java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
>          at java.base/java.lang.Thread.run(Thread.java:834)       {noformat}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to