Skip to content

Follow-ups from #746: the adapted #692 assertion is not forced, the ctx-bound test's unbounded-wait failure mode, CI runs the drain-order test in one shape #777

Description

@FumingPower3925

Follow-ups from the review of #746 (#703). The blocking findings were fixed in round 2 (head 3d2ab72). This lists the minor and nit findings.

Handled in round 2:

Open (tests and CI):

  1. The adapted fix(server): shut down on every context cancel, and return only after it (celeris#673) #692 assertion is not forced. In start_context_shutdown_test.go (TestStartContextWatcherDoesNotRepeatADirectShutdown, "the hook ran %d times while Listen was still tearing down"), the check races the Shutdown goroutine under the negative control. The review measured 300/300 FAIL without -race and 296/300 with it. The deterministic detector is TestShutdownRunsHooksOnlyAfterListenReturns, so the test's doc should not present it as one.
  2. TestShutdownWaitForListenIsBoundedByCtx catches an unbounded wait only through the package -timeout panic. That panic gives no --- FAIL line, and in CI's root step it costs 300 s and aborts the whole root package. Also, start is taken after context.WithTimeout, so elapsed < 100ms is not a strict bound (it is redundant with the DeadlineExceeded check). Fix: run Shutdown on a goroutine with its own 10 s watchdog, and take start before WithTimeout.
  3. CI covers TestShutdownHooksRunAfterTheDrain in one shape only. The Unit job's root step runs without -v at the runner's 8 MiB memlock, so io_uring has one worker. The multi-worker drain is checked only on the laptop (unconstrained memlock) and in the queued cluster row. go test $pkgs runs packages concurrently and they share the per-UID ring budget; the test retries an ENOMEM start for up to 10 s and has no skip path. Consider a named -v step for this test, as Follow-ups from #698: shutdown leaves a deferred transplant's descriptor open (pre-existing), EPOLLOUT comment premise, CI visibility of the new test, stale comments #727 item 3 asks for another test.

No activity

Activity on this issue will appear here.

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/testTesting infrastructuretestingTesting infrastructure and helpers

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions