Both pass runners do nothing once the loop's context is cancelled, so a stop no longer starts an eviction pass after a cancelled reconciliation or on a pending write-pressure wakeup or tick. In evictBatch, a candidate that fails after cancellation ends the batch with the context's error instead of logging its own warning; this replaces the check before each candidate, since every candidate started after cancellation fails at its first database call. A stop now logs at most one warning. Model: opus-5-5
This commit is contained in:
@@ -32,7 +32,8 @@ P2: security: referer blacklist
|
||||
- 2026-10-04 shutdown stops cache eviction in progress (closes #102):
|
||||
`StartEviction` runs the eviction goroutine with its own context, which
|
||||
`StopEviction` cancels, so a pass in progress stops at its next database
|
||||
call, file, row or eviction candidate instead of running to completion;
|
||||
call, file, row or eviction candidate instead of running to completion, and
|
||||
no pass starts after it, so a stop logs at most one warning;
|
||||
`StopEviction` takes a context and, when that context ends before the
|
||||
goroutine exits, stops waiting and returns its error; the handlers' stop hook
|
||||
passes fx's stop context, so an eviction still running when fx's stop
|
||||
|
||||
Reference in New Issue
Block a user