[
https://issues.apache.org/jira/browse/NIFI-12693?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Payne updated NIFI-12693:
------------------------------
Status: Patch Available (was: Open)
> When Processor is removed, Python Process should be notified asynchronously
> ---------------------------------------------------------------------------
>
> Key: NIFI-12693
> URL: https://issues.apache.org/jira/browse/NIFI-12693
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Reporter: Mark Payne
> Assignee: Mark Payne
> Priority: Major
> Fix For: 2.0.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> When a Processor is removed, the PythonBridge is notified of the removal, and
> it then notifies any relevant Python process. This is done synchronously
> during the removal. I encountered two occurrences in which notifying the
> Python process failed.
> While the failure itself is not a huge concern, the handling of those
> failures resulted in very bad outcomes. In the first instance, the
> communication with the Python process was blocked on a socket read or write.
> As a result, the Service Facade's lock was never released, and no web
> requests could be made; they all blocked on the read lock. This resulted in
> requiring a restart of NiFi.
> In the other scenario, the call did not block indefinitely but threw an
> Exception. In this case, the associated Connections were never removed. As a
> result, I could no longer navigate to that Process Group in the UI, or the UI
> would have errors because there were Connections whose source or destination
> didn't exist. This required manually removing those connections from the
> flow.json file to recover.
> Since the intention of this action is simply a notification so that the
> Python process can cleanup after itself, this notification should be moved to
> a background thread, so that any failures are simply logged without causing
> problematic side effects.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)