Skip to content

CI: with io_uring unavailable, 16 ./adaptive tests skip and the adaptive job passes even under CELERIS_REQUIRE_UPSWITCH=1 #684

Description

@FumingPower3925

Summary

When io_uring is unavailable on a runner (for example, a seccomp profile that refuses io_uring_setup), the adaptive job's main test step goes green without testing adaptive switching.

  • 16 ./adaptive tests skip, and go test reports ok, even with CELERIS_REQUIRE_UPSWITCH=1, because those skips are not routed through the require check.
  • TestFlapConnsPerRing's own skip (s0Bind, when !IOUringTier.Available()) also ignores that variable.

Today the only thing that turns such a runner red is the T4 tally that PR #681 adds (it requires exactly 1 PASS and no T4 SKIP line).

How it was found

The T-SECCOMP interlock arm of PR #681's round 2 ran the adaptive job's race step verbatim, as GitHub does, under a seccomp profile that refuses io_uring_setup. The log shows 16 top-level --- SKIP lines and ok github.com/goceleris/celeris/adaptive (evidence: evidence/celeris-657/impl/pr2-r2/fix/interlock/48dfe1a/logs/IL-T-SECCOMP.log).

Proposed

  • Route every io_uring-availability skip in ./adaptive through one helper that fails when CELERIS_REQUIRE_UPSWITCH=1 (or a dedicated require variable) is set, the way skipOrFail656 does for engine/iouring.
  • Give the adaptive job a PASS-count interlock with SKIP forbidden, proven both ways from the verbatim run block.

Other behaviour stays the same: local runs without io_uring still skip.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ciCI/CD pipelinetestingTesting infrastructure and helpers

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions