Stopping the server waits for report file writes under way (closes #122)
check / check (push) Waiting to run
check / check (push) Waiting to run
The report buffer's stop now waits, through a sync.WaitGroup, for flushLoop and for the write Append starts at 10 MiB before its final flush. It used to return at once, so the process exiting cut such a write off and its reports were lost. A write under way that fails puts its reports back in the buffer, so the final flush writes them; the stop fails only if that flush fails too. Tests hold the periodic write and the one at 10 MiB open in a synctest bubble and find the stop waiting until each is released; a third makes the held write fail and finds its report written by the final flush. Model: opus-5-5
This commit was merged in pull request #138.
This commit is contained in:
@@ -21,6 +21,18 @@ Run `make frontend-viewport-test` in CI as its own step; it is not part of
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-10-14: stopping the server waits for a report file write already under
|
||||
way, the periodic flush's or the one `Append` starts when 10 MiB are waiting,
|
||||
before the final flush
|
||||
([#122](https://git.eeqj.de/sneak/netwatch/issues/122)). It used to return at
|
||||
once, and the process exiting cut the write off, losing its reports. A write
|
||||
under way that fails puts its reports back in memory, so the final flush
|
||||
writes them; the stop fails, and the process exits non-zero, only if that
|
||||
flush fails too. Two tests hold the periodic write and the one at 10 MiB open
|
||||
and find the stop waiting until each is released; a third makes the held write
|
||||
fail and finds its report written by the final flush. They run in a
|
||||
`testing/synctest` bubble, so the periodic flush comes without waiting a
|
||||
minute
|
||||
- 2026-10-14: `make test` no longer runs the frontend's production build, which
|
||||
the tests do not need ([#118](https://git.eeqj.de/sneak/netwatch/issues/118)).
|
||||
`yarn build` moved out of the stage that runs the frontend's unit tests, now
|
||||
|
||||
Reference in New Issue
Block a user