pvillard31 opened a new pull request, #11570:
URL: https://github.com/apache/nifi/pull/11570

   # Summary
   
   NIFI-16232 - Allow versioned flow updates to drain removed connections
   
   Versioned flow updates currently stop both endpoints of an affected 
connection before verifying that a connection removed by the target version has 
an empty queue. Stopping the destination prevents queued FlowFiles from 
draining, so an update can fail even when the destination could otherwise 
process the remaining data.
   
   This change adds an Update-only pre-drain phase that:
   
   - Identifies removed connections with non-empty queues.
   - Conservatively rejects unsupported topologies before changing runtime 
state.
   - Stops producer barriers while leaving destinations running.
   - Waits up to 30 seconds for all eligible removed connections to drain.
   - Requires exact queue-status coverage across connected cluster nodes.
   - Restores components stopped during pre-drain following cancellation, 
timeout, or failure.
   - Preserves the existing connection-removal verification and synchronization 
safety checks.
   
   The approach follows the same lifecycle principle as Connector draining: 
stop accepting or producing new data, allow in-flight data to complete, and 
finish with components stopped before applying an update. It does not reuse the 
Connector drain API because Connector draining is component-owned and exposes a 
dedicated `DRAINING` state, while ordinary connections have no drain operation. 
Instead, versioned flow updates coordinate existing processor and port 
lifecycle operations and observe connection queues externally.
   
   The behavior is limited to registry Update requests. Revert, rebase, 
process-group replacement, startup synchronization, and Connector update 
behavior are unchanged. Updates without non-empty removed connections complete 
the new progress step immediately.
   
   # Tracking
   
   Please complete the following tracking steps prior to pull request creation.
   
   ### Issue Tracking
   
   - [Apache NiFi Jira](https://issues.apache.org/jira/browse/NIFI) issue 
created
   
   ### 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](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits)
 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](https://apache.org/licenses/LICENSE-2.0) according to the [License 
Policy](https://www.apache.org/legal/resolved.html)
   - [ ] New dependencies are documented in applicable `LICENSE` and `NOTICE` 
files
   
   ### Documentation
   
   - [ ] Documentation formatting appears as expected in rendered files
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to