You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by "Oleg Zhurakousky (JIRA)" <ji...@apache.org> on 2016/02/03 20:54:39 UTC

[jira] [Commented] (NIFI-78) Add interrupt option for stopped processors with active threads

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

Oleg Zhurakousky commented on NIFI-78:
--------------------------------------

Just to clarify the problem a little more; The issue is not necessarily with having blocking @OnStopped operation implemented by user. Those are actually OK since @OnStopped is invoked asynchronously by NiFi. 
{code}
final Runnable stopProcRunnable = new Runnable() {
            @Override
            public void run() {
                . . .
                ReflectionUtils.quietlyInvokeMethodsWithAnnotation(OnUnscheduled.class, procNode.getProcessor(), processContext);
                . . .
            }
        };
componentLifeCycleThreadPool.execute(stopProcRunnable);
{code}
The real issue is with the code right before the code that's above
{code}
synchronized (state) {
 . . . .
}
{code}
That is the reason for deadlock and similar code was removed and refactored for ControllerServices and now the same should be done for Processors hence NIFI-1464 becomes a pre-requisite and once solved there may not be anything needed to do to address this one.

> Add interrupt option for stopped processors with active threads
> ---------------------------------------------------------------
>
>                 Key: NIFI-78
>                 URL: https://issues.apache.org/jira/browse/NIFI-78
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Core Framework
>            Reporter: Joseph Witt
>            Assignee: Oleg Zhurakousky
>            Priority: Minor
>             Fix For: 0.6.0
>
>
> Some processors have really long stopping periods.  Would be nice to be able to forcibly kill them if possible.  Otherwise certain flow changes cannot occur.  This is one part best practices and another part helping the user decide when to forcibly kill a processor.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)