Two writes that failed at the same time put their reports back in the wrong order when the older one failed first. A mutex is now held across each write, from taking the waiting reports out of the buffer to putting them back if the write fails, so the next write takes them in order. The write Append starts at the 10 MiB threshold waits for one under way, and Append starts no other while it waits. Files written since the start are now deleted to make room in the order they were written. A test that needed two writes at once is removed; new tests cover the one waiting write and the order files are deleted in. Model: opus-5-5
This commit was merged in pull request #172.
This commit is contained in:
@@ -21,6 +21,19 @@ Run `make frontend-viewport-test` in CI as its own step; it is not part of
|
||||
|
||||
# Completed Steps
|
||||
|
||||
- 2026-10-19: report file writes no longer overlap
|
||||
([#150](https://git.eeqj.de/sneak/netwatch/issues/150)), so the reports of
|
||||
failed writes are written in the order they arrived. Two writes that failed at
|
||||
the same time put their reports back in the wrong order when the older failed
|
||||
first. One write runs at a time, and each takes the waiting reports only when
|
||||
it starts, after a failed write has put its own back. The write `Append`
|
||||
starts when 10 MiB are waiting waits for any write under way, and `Append`
|
||||
starts no other while it waits. Files written since the start are deleted to
|
||||
make room in the order they were written, after those found at start. A unit
|
||||
test holds a write open, starts a second at 10 MiB, fails both and checks the
|
||||
order in the next file. Others check that `Append` starts no second write at
|
||||
10 MiB while one waits, that it starts one again the next time 10 MiB are
|
||||
waiting, and that the first file written since the start is the first deleted
|
||||
- 2026-10-19: `DEBUG` unset or empty leaves debug logging off, and any other
|
||||
value, `false` and `0` included, turns it on, as the code style guide says
|
||||
([#159](https://git.eeqj.de/sneak/netwatch/issues/159)). No value of it stops
|
||||
|
||||
Reference in New Issue
Block a user