Skip to content

NIFI-15668 - Fail fast when RUN_ONCE is issued on an invalid processor#10963

Open
pvillard31 wants to merge 1 commit intoapache:mainfrom
pvillard31:NIFI-15668
Open

NIFI-15668 - Fail fast when RUN_ONCE is issued on an invalid processor#10963
pvillard31 wants to merge 1 commit intoapache:mainfrom
pvillard31:NIFI-15668

Conversation

@pvillard31
Copy link
Contributor

Summary

NIFI-15668 - Fail fast when RUN_ONCE is issued on an invalid processor

When a RUN_ONCE command is issued on an invalid processor, the processor enters the initiateStart() retry loop which retries every 500ms waiting for the processor to become valid. Unlike a regular RUNNING start where this retry behavior is desirable, RUN_ONCE semantically means "execute right now" — if the processor can't execute, it should fail immediately.

The retry loop causes the processor to get permanently stuck in the RUN_ONCE physical state because:

  • isRunning() returns true for RUN_ONCE, so configuration and parameter changes are rejected with "Cannot modify configuration while the Processor is running"
  • getScheduledState() returns RUN_ONCE (unlike STARTING which maps to STOPPED when invalid), so the API's stop handler doesn't recognize it needs to stop the processor
  • The stop callback that would normally fire after execution is never invoked because the processor never reaches the trigger() call

The fix adds an early exit in StandardProcessorNode.initiateStart(): when the processor is not valid and the desired state is RUN_ONCE, it logs a warning with the validation errors and immediately returns the processor to STOPPED via completeStopAction().

Tracking

Please complete the following tracking steps prior to pull request creation.

Issue Tracking

Pull Request Tracking

  • Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
  • Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000
  • Pull request contains commits signed with a registered key indicating Verified status

Pull Request Formatting

  • Pull Request based on current revision of the main branch
  • Pull Request refers to a feature branch with one commit containing changes

Verification

Please indicate the verification steps performed prior to pull request creation.

Build

  • Build completed using ./mvnw clean install -P contrib-check
    • JDK 21
    • JDK 25

Licensing

  • New dependencies are compatible with the Apache License 2.0 according to the License Policy
  • New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

  • Documentation formatting appears as expected in rendered files

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant