Skip to content

Support strictly unidirectional UDP air-gap transfer - #19063

Draft
Caideyipi wants to merge 2 commits into
masterfrom
feat/air-gap-strict-unidirectional
Draft

Caideyipi wants to merge 2 commits into
masterfrom
feat/air-gap-strict-unidirectional

Conversation

@Caideyipi

@Caideyipi Caideyipi commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

UDP air-gap transfer currently waits for acknowledgements, so pipe creation times out when the link blocks all reverse traffic. Add sink.air-gap.strict-unidirectional=true (also available under the connector prefix), restricted to UDP and disabled by default.

In this mode the sender marks every datagram as requiring no response and returns after the local send; the receiver suppresses both ACK and NACK. Refresh the handshake before each transfer event so subsequent events can initialize a restarted or expired receiver session without resetting a file between its pieces. Both endpoints must include this change.

This is best-effort transmission: delivery, authentication failures, receiver errors, and lost or reordered UDP packets cannot be confirmed or recovered through a reverse channel. The existing acknowledged behavior remains the default.

Validation: Spotless apply and git diff --check passed. Added regression cases for both parameter aliases, UDP-only validation, no-ACK slicing and handshakes, suppressed receiver replies, and the default ACK requirement. All six new regression methods passed on Linux. The upstream Linux DataNode unit-test job and Chinese-locale compilation also passed. Validation over a link with all reverse traffic blocked is in progress.

@codecov

codecov Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 89.74359% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 48.07%. Comparing base (3a51384) to head (256dce4).

Files with missing lines Patch % Lines
...db/commons/pipe/sink/protocol/IoTDBAirGapSink.java 86.20% 4 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master   #19063      +/-   ##
============================================
+ Coverage     48.05%   48.07%   +0.02%     
  Complexity      604      604              
============================================
  Files          5572     5572              
  Lines        410194   410227      +33     
  Branches      54112    54126      +14     
============================================
+ Hits         197110   197233     +123     
+ Misses       213084   212994      -90     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Caideyipi
Caideyipi marked this pull request as draft October 30, 2026 08:54
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
E Reliability Rating on New Code (required ≥ A)
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@Caideyipi
Caideyipi marked this pull request as ready for review October 30, 2026 10:32
@Caideyipi
Caideyipi marked this pull request as draft October 30, 2026 11:28
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