[
https://issues.apache.org/jira/browse/NIFI-14999?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18024086#comment-18024086
]
Mark Payne commented on NIFI-14999:
-----------------------------------
We do allow starting Processors that are invalid when done as a group, but not
individually. The reasoning is that it is common on startup, when a new node
joins a cluster, or a node's flow is outdated, and it downloads the cluster's
flow, etc. that the flow says that a given Processor is supposed to be Running.
However, it may well be invalid due to environmental reasons. For example, it's
configured to reference a file that does not exist but will exist in the
future. For example, a separate flow will download the file from some REST
endpoint and then use PutFile to write it out. This will eventually cause the
Processor to become valid.
If we did not allow starting the Processor when it is invalid, then what would
happen is it would join the cluster, the Processor would be invalid, so it
wouldn't start. When that file is later downloaded, the Processor would become
valid but would remain in a STOPPED state because the Start failed due to
validation issues.
That being said, we do NOT allow starting an individual Processor when invalid
because the point of starting invalid processors is this more asynchronous flow
startup type of case.
> Enabling service and referencing components makes invalid processor stuck as
> running
> ------------------------------------------------------------------------------------
>
> Key: NIFI-14999
> URL: https://issues.apache.org/jira/browse/NIFI-14999
> Project: Apache NiFi
> Issue Type: Bug
> Components: Core Framework
> Affects Versions: 2.5.0, 2.6.0
> Reporter: Gabriel Orstadius-Bui
> Assignee: Matt Gilman
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Found this bug in version 2.5, and have confirmed that this bug is not
> reproducible in 2.4
> # Create any Record Reader Service (don't enable yet)
> # Create a PutRecord processor and set the created Record Reader (don't set
> Record Destination Service)
> # Go to the Record Reader and enable it, selecting scope "Service and
> referencing components"
> # PutRecord will still be invalid (since "Record Distination Service" and
> Upstream Connection are required), but it is now not possible to change
> configurations or delete it, Error: "Cannot modify configuration of
> PutRecord[id=70b8bce2-0199-1000-4805-b0329e43f239] while the Processor is
> running".
> # UI also does not offer option to stop processor, only to disable (which
> does nothing)
> In other words, it seems as if enabling a service with referencing
> processors, wrongly leads the invalid processor to get stuck in a running
> state which can't be fixed, rendering the processor (and service) unusable.
> The only solution to this bug I have identified is to stop the entire Process
> Group, which then will stop the Processor gone rogue.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)