Skip to content

NIFI-15765 - Fix flaky tests on FlowSynchronizationIT#11073

Merged
exceptionfactory merged 1 commit intoapache:mainfrom
pvillard31:NIFI-15765
Mar 30, 2026
Merged

NIFI-15765 - Fix flaky tests on FlowSynchronizationIT#11073
exceptionfactory merged 1 commit intoapache:mainfrom
pvillard31:NIFI-15765

Conversation

@pvillard31
Copy link
Copy Markdown
Contributor

Summary

NIFI-15765 - Fix flaky tests on FlowSynchronizationIT

1st change - setupClient() at the start of teardown. Tests like testSensitivePropertiesInherited call switchClientToNode(2) and leave the client pointed at node 2. Teardown then sends health checks and destroyFlow() calls to node 2 instead of the coordinator. If node 2 is in any transient state (just reconnected, still finishing initialization), the getCluster() endpoint rejects the request with "Only a node connected to a cluster can process the request." Resetting the client to node 1 (the coordinator) ensures teardown always talks to the stable node. (node 1 is a better choice than node 2 because tests routinely disconnect/reconnect/restart node 2, while node 1 is always left running and connected)

2nd change - try-catch around health checks. Even with the client reset to node 1, there could be scenarios where node 1 itself can't respond (e.g., both nodes are briefly unhealthy). The try-catch ensures the instance always gets poisoned rather than silently reused in a broken state. This effectively avoids a cascade of failures like in the example reported in the JIRA.

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

@pvillard31 pvillard31 added the type: testing Pull requests for changes to test components label Mar 29, 2026
Copy link
Copy Markdown
Contributor

@exceptionfactory exceptionfactory left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this structural changes to the teardown process @pvillard31, the changes look good. +1 merging

@exceptionfactory exceptionfactory merged commit a00cf8d into apache:main Mar 30, 2026
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: testing Pull requests for changes to test components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants