Reduce unnecessary churn and probes on ACL/NAT tests - #1974
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughThe PR adds deterministic NAT probe selection, moves NAT and ACL cases into a dedicated gateway suite, and runs that suite in the normal release-test flow. It also adds table-driven coverage for probe selection. ChangesNAT and ACL release tests
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
Release Tests 11 files + 6 55 suites +35 3h 56m 31s ⏱️ + 1h 42m 7s For more details on these failures, see this check. Results for commit 2845e9f. ± Comparison against base commit 335e719. ♻️ This comment has been updated with latest results. |
31b0666 to
2845e9f
Compare
|
@coderabbitai review |
✅ Action performedReview finished.
|
pau-hedgehog
left a comment
There was a problem hiding this comment.
Validated with repeated full CI runs on this branch:
https://github.com/githedgehog/fabricator/actions/workflows/ci.yaml?query=branch%3Aema%2Ffaster-acl-and-nat-rts+actor%3Apau-hedgehog
Three comments inline, none blocking.
2845e9f to
b4942c1
Compare
Every NAT and ACL test peers the first two VPCs, then probed the whole matrix: with one server per VPC that is ~90 ordered pairs, of which 2 are the subject. The other 88 only restate that unpeered VPCs cannot talk, and they cost up to PingsParallel concurrent ssh sessions and probes while the pair under test is being measured. Narrow Sources/Destinations to the servers of the two peered VPCs plus one server outside them, kept as an isolation control so a peering that leaks past its VPCs still fails a test. This narrows the curl phase to those servers too. Unit-test the selection, including the case of a server attached to both a tested and an untested VPC, which is what the dedup guard is for. Signed-off-by: Emanuele Di Pascale <emanuele@githedgehog.com>
The NAT, external NAT and ACL tests all sat in the multi-VPC single-subnet suite, which runs with wipeBetweenTests set, so each of the 28 was preceded by a full VPC setup: every server ran hhnet cleanup and took a fresh DHCP lease, and the gateway peering was deleted and recreated instead of updated. That is the churn the probes in #1937 raced. None of them needs it. They only create their own peerings, return no reverts, and DoSetupPeerings deletes every peering absent from the spec they pass, so the previous test's peerings are gone either way. Move them to their own suite, run before wipeBetweenTests is set, which leaves one setup for the whole group instead of 28. Signed-off-by: Emanuele Di Pascale <emanuele@githedgehog.com>
b4942c1 to
c6ffe57
Compare
Follow-ups to comments that were marked addressed but were not: - record that the proto-port probe semaphore only covers its own phase, since the server-to-server phase keeps pinging concurrently - release that semaphore via defer, so a future early exit between the acquire and the release cannot stall the phase on its single slot - fail loudly when a NAT test finds no servers to probe: an empty source list reads as "no filter" downstream and probes the whole matrix - run Gateway Peering Overlap NAT last in the gateway NAT/ACL suite; it creates an IPv4Namespace and a VPC and re-attaches a server, and without a wipe between tests the rest of the suite inherits whatever its reverts miss - fix the -D -O ping fixture timestamps, which were non-monotonic and duplicated Signed-off-by: Claude <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Emanuele Di Pascale <emanuele@githedgehog.com>
Follow-ups to comments that were marked addressed but were not: - record that the proto-port probe semaphore only covers its own phase, since the server-to-server phase keeps pinging concurrently - release that semaphore via defer, so a future early exit between the acquire and the release cannot stall the phase on its single slot - fail loudly when a NAT test finds no servers to probe: an empty source list reads as "no filter" downstream and probes the whole matrix - run Gateway Peering Overlap NAT last in the gateway NAT/ACL suite; it creates an IPv4Namespace and a VPC and re-attaches a server, and without a wipe between tests the rest of the suite inherits whatever its reverts miss - fix the -D -O ping fixture timestamps, which were non-monotonic and duplicated Signed-off-by: Claude <noreply@anthropic.com> Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Emanuele Di Pascale <emanuele@githedgehog.com>

Uh oh!
There was an error while loading. Please reload this page.