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