Files
Kim Altintop 997b5a6e8f commitlog: Handle empty tail segments upon resumption (#4863)
In #4338, the read-only path was made resilient against empty segments
at the end of the log, but corresponding logic was not applied to
re-opening the commitlog for writing.

This patch rectifies that by ignoring and removing segments from the
tail of the log if they contain equal to or less than
`segment::Header::LEN` bytes.

Additionally, zero-sized segments are eliminated entirely by ensuring
that the header is written before moving the segment into place
atomically. The benefit of this is not huge, but could simplify
commitlog-consuming code by not having to worry about empty (zero-sized)
segments. Happy to revert if that is deemed too less of a benefit.

# Expected complexity level and risk

2

# Testing

Adds a test.
2026-05-07 06:53:24 +00:00
..
2026-03-03 11:06:52 +00:00
2026-04-30 19:24:41 +00:00
2026-04-30 19:24:41 +00:00
2026-03-19 17:47:00 +00:00
2026-03-19 17:47:00 +00:00
2025-08-12 18:20:58 +00:00
2026-03-03 11:06:52 +00:00
2026-04-30 09:00:13 +00:00
2026-04-30 19:24:41 +00:00
2026-03-19 17:47:00 +00:00
2026-03-03 11:06:52 +00:00