Skip to content

ci: run ./adaptive/... in its own job, and make the up-switch tests skip with a reason (#641) - #660

Merged
FumingPower3925 merged 4 commits into
mainfrom
ci/641-run-adaptive-package
Sep 15, 2026
Merged

FumingPower3925 merged 4 commits into
mainfrom
ci/641-run-adaptive-package

Conversation

@FumingPower3925

@FumingPower3925 FumingPower3925 commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Closes #641.

What changes

Proven on GitHub-hosted runners

head memlock adaptive job what it shows
70a4abf (control arm) 8192 KiB (runner default) red: exactly the 5 gated tests FAIL with CELERIS_REQUIRE_UPSWITCH=1 forbids skipping, plus the known one-worker TestReverseTransplant flake the gate bites
c55eebb unlimited red: 0 forbids-skipping, 82 PASS; TestRampH1Sync/TestRampH1Async lose ~1/3 of 2048 conns to connection reset by peer the gate passes; exposed #662
82a6850 (on main c40d0cb) unlimited red: the same two ramp tests only (err 884; 596 resets + unexpected EOF); churn, reverse-transplant and flap PASS #662 is not #658
456f0e6 unlimited green: TestRampAutoMixedH1H2, TestRampAutoMixedAsync, TestAdaptiveSwitchesWithPreBoundListener, TestAdaptiveSwitchVsAcceptChurn, TestReverseTransplant, TestBidirectionalFlap all PASS; 0 FAIL, 0 races this PR

The control arm is recorded as a deliberate red run.

Not in this PR

  • Required status checks are a repository setting. Whether Adaptive engine (./adaptive/...) becomes one is the repository owner's decision; it is not yet required.
  • A guard that every package excluded from the unit job names the job that covers it. Filed separately if wanted; this PR only fixes the comment.

…kip with a reason (#641) [control arm]

CONTROL ARM. This commit adds the job WITHOUT raising memlock, so on a
GitHub-hosted runner (8 MiB) adaptive.New disables the up-switch and the five
tests gated by requireUpSwitch must FAIL with "CELERIS_REQUIRE_UPSWITCH=1
forbids skipping". The next commit raises memlock and must turn them green.
This proves the gate bites before it is trusted.
…#641)

The previous commit ran the job at the runner's default memlock and the five
up-switch tests failed with "CELERIS_REQUIRE_UPSWITCH=1 forbids skipping", which
proves the gate bites. Raising the step shell's limit (inherited by the test
processes) lets adaptive.New enable the switch, so they run for real.
…s fixed (#641)

celeris#661 fixed the lost hand-off wakeup behind the test's fd leak; the
churn test passed 10/10 at both memlock limits on the fix. It runs again.
…s#662 (#641)

On two GitHub-runner runs of this job (c55eebb and 82a6850, memlock unlimited)
both tests lost about a third of their 2048 connections at each promotion to
"connection reset by peer" / unexpected EOF, and the controller's error-rate
safety revert then flapped the engine. celeris#662 reproduces the cause
deterministically: PauseAccept drops the connections already queued on the
paused engine (EOF 8/8 with a pause, 200 8/8 without). The other three
up-switch tests still run and pass.
@FumingPower3925
FumingPower3925 marked this pull request as ready for review September 15, 2026 21:19
@FumingPower3925
FumingPower3925 merged commit 3f8395c into main Sep 15, 2026
11 checks passed
@FumingPower3925
FumingPower3925 deleted the ci/641-run-adaptive-package branch September 15, 2026 21:19
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.

CI runs none of the adaptive package's 56 tests, so main can be green and broken at the same time

1 participant