test: retry dual-protocol ephemeral port collision #102

Merged
ada merged 1 commit from test/dual-protocol-port-race into master 2026-10-03 07:52:50 +00:00
Collaborator

Problem

Rust PR CI for porting PR #101 (run 245, job 1138) failed in an existing unrelated lease test at leases.rs:2506: InvalidRequest("Address already in use (os error 98)"). The test selected a random TCP port and immediately reused the same number for both UDP and TCP registration without checking UDP availability, with a race between probe and bind.

Change

Probe availability on both protocols and retry the entire isolated test up to eight times only for the observed bind collision. Any other registration failure still fails immediately; all contract assertions remain unchanged. No production code change.

Validation

  • Actual CI failure log read from Forgejo Actions job 1138
  • 20 repeated focused test runs passed locally
  • cargo test --locked -p portal-relay: 192 passed, 3 ignored
  • cargo clippy --locked -p portal-relay --all-targets -- -D warnings
  • git diff --check

After merge, rebase PR #101 onto this fixed master and require the two exact-head PR contexts again. No release/deployment change.

## Problem Rust PR CI for porting PR #101 (run 245, job 1138) failed in an existing unrelated lease test at `leases.rs:2506`: `InvalidRequest("Address already in use (os error 98)")`. The test selected a random TCP port and immediately reused the same number for both UDP and TCP registration without checking UDP availability, with a race between probe and bind. ## Change Probe availability on both protocols and retry the entire isolated test up to eight times *only* for the observed bind collision. Any other registration failure still fails immediately; all contract assertions remain unchanged. No production code change. ## Validation - Actual CI failure log read from Forgejo Actions job 1138 - 20 repeated focused test runs passed locally - `cargo test --locked -p portal-relay`: 192 passed, 3 ignored - `cargo clippy --locked -p portal-relay --all-targets -- -D warnings` - `git diff --check` After merge, rebase PR #101 onto this fixed master and require the two exact-head PR contexts again. No release/deployment change.
test: retry dual-protocol ephemeral port collision
All checks were successful
Rust CI / Format, lint, and test (pull_request) Successful in 2m28s
Rust CI / Build and start linux/arm64 image (no push) (pull_request) Successful in 1m0s
24113338a2
ada merged commit 97c213c790 into master 2026-10-03 07:52:50 +00:00
ada deleted branch test/dual-protocol-port-race 2026-10-03 07:52:50 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gofix/portal-tunnel-rs!102
No description provided.