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]
