NIFI-15668 - Fail fast when RUN_ONCE is issued on an invalid processor#10963
Open
pvillard31 wants to merge 1 commit intoapache:mainfrom
Open
NIFI-15668 - Fail fast when RUN_ONCE is issued on an invalid processor#10963pvillard31 wants to merge 1 commit intoapache:mainfrom
pvillard31 wants to merge 1 commit intoapache:mainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
NIFI-15668 - Fail fast when RUN_ONCE is issued on an invalid processor
When a
RUN_ONCEcommand is issued on an invalid processor, the processor enters theinitiateStart()retry loop which retries every 500ms waiting for the processor to become valid. Unlike a regularRUNNINGstart where this retry behavior is desirable,RUN_ONCEsemantically 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_ONCEphysical state because:isRunning()returnstrueforRUN_ONCE, so configuration and parameter changes are rejected with "Cannot modify configuration while the Processor is running"getScheduledState()returnsRUN_ONCE(unlikeSTARTINGwhich maps toSTOPPEDwhen invalid), so the API's stop handler doesn't recognize it needs to stop the processortrigger()callThe fix adds an early exit in
StandardProcessorNode.initiateStart(): when the processor is not valid and the desired state isRUN_ONCE, it logs a warning with the validation errors and immediately returns the processor toSTOPPEDviacompleteStopAction().Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking
Pull Request Tracking
NIFI-00000NIFI-00000VerifiedstatusPull Request Formatting
mainbranchVerification
Please indicate the verification steps performed prior to pull request creation.
Build
./mvnw clean install -P contrib-checkLicensing
LICENSEandNOTICEfilesDocumentation