You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
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
The listenDone comment was false for std (minor). It said std's Listen returns after the drain, but it returns when Engine.Shutdown closes the listener, at the start. The comment is rewritten. The engine difference it pointed at, std's Start returning at t=0 on a direct Shutdown, is gone: a Start* call stopped by a direct Shutdown now returns after that Shutdown on every engine.
The body said the controls ran at 8b72c10 "and the only later commit is comment-only" (nit). The round-2 body's numbers are all from the final head's text.
Open (tests and CI):
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.
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.
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:
Shutdowngodoc and thelistenDonecomment now say so, and neither calls the wait a full drain.listenDonecomment was false for std (minor). It said std'sListenreturns after the drain, but it returns whenEngine.Shutdowncloses the listener, at the start. The comment is rewritten. The engine difference it pointed at, std'sStartreturning at t=0 on a directShutdown, is gone: aStart*call stopped by a directShutdownnow returns after thatShutdownon every engine.8b72c10"and the only later commit is comment-only" (nit). The round-2 body's numbers are all from the final head's text.Open (tests and CI):
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-raceand 296/300 with it. The deterministic detector isTestShutdownRunsHooksOnlyAfterListenReturns, so the test's doc should not present it as one.TestShutdownWaitForListenIsBoundedByCtxcatches an unbounded wait only through the package-timeoutpanic. That panic gives no--- FAILline, and in CI's root step it costs 300 s and aborts the whole root package. Also,startis taken aftercontext.WithTimeout, soelapsed < 100msis not a strict bound (it is redundant with theDeadlineExceededcheck). Fix: runShutdownon a goroutine with its own 10 s watchdog, and takestartbeforeWithTimeout.TestShutdownHooksRunAfterTheDrainin one shape only. The Unit job's root step runs without-vat 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 $pkgsruns 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-vstep 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.