Skip to content

Follow-ups from #702: a raised-memlock CI step for the celeris#592 rig, with the io_uring stall assertion #739

Description

@FumingPower3925

Follow-ups from PR #702 (Refs #684), deferred under the maintainer's two-round review cap (2026-09-27). #702 changes two test files only; this item is CI wiring it deliberately left out (its body lists it under "Not in this PR", and the #684 census records it: #684 (comment)).

  1. No CI step runs the celeris#592 rig with memlock raised and CELERIS_REQUIRE_IOURING_WORKERS=1 (CodeRabbit, minor, test: run the epoll sendfile e2e tests, and let CI forbid the celeris#592 rig's io_uring skips (celeris#684) #702 (comment); verified at dc14ef5). test: run the epoll sendfile e2e tests, and let CI forbid the celeris#592 rig's io_uring skips (celeris#684) #702 routes both io_uring skips of TestAdaptiveSettledRouteRetime592 through skipOrFailIOUring592, which fails when the variable is set, but no step sets it for this test. The thread's premise is off: the test is in package celeris (the repository root, adaptive_settled_retime_linux_test.go), so the adaptive job (./adaptive/...) never runs it, and adding the variable to that job's env, as suggested, would change nothing for it. It runs only in the Unit job's root step, at the runner's 8 MiB, without -v, where its three io_uring subtests skip silently (ci.yml has 0 matches for Retime592; positive control TestFlapConnsPerRing: 3). The fix is a step (or an entry in an existing raised-memlock step) that runs -run '^TestAdaptiveSettledRouteRetime592$' . with sudo prlimit --memlock=unlimited, -v, CELERIS_REQUIRE_IOURING_WORKERS=1 and a PASS/SKIP tally (6 subtests, 0 SKIP lines). Per the CI: with io_uring unavailable, 16 ./adaptive tests skip and the adaptive job passes even under CELERIS_REQUIRE_UPSWITCH=1 #684 census it is worth adding together with item 2, since on its own it repeats the adaptive dispatch never re-times a settled route: a store-backed handler that turns slow runs inline on the engine worker forever (#493 item 4, measured) #592 check the epoll half already makes.

  2. The rig's io_uring half does not catch a celeris#593 revert (from the CI: with io_uring unavailable, 16 ./adaptive tests skip and the adaptive job passes even under CELERIS_REQUIRE_UPSWITCH=1 #684 census, recorded here so the CI step and the assertion land together). With the snapshotH1Deadlines TryLock reverted to a blocking Lock, the io_uring half still PASSES 3/3: it prints a stalled fraction of 0.327-0.340 against 0.000, but asserts only a median ratio. Making it assert the stall it prints is the owner's call on the bar, given celeris#622's 0.145 queued-fraction outlier.

Also on that thread: ast-grep flags t.Fatal(msg + " -- CELERIS_REQUIRE_IOURING_WORKERS=1 forbids skipping") as log injection (CWE-117). It is a false positive: msg is the test's own format string and a local error, not request data, and the sink is testing.T.

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