Skip to content

1.2.5

Latest

Choose a tag to compare

@RuiNelson RuiNelson released this 08 Nov 08:49

Wraps libpcache 1.2.1.

Version 1.2.5

Bug Fixes

  • libpcache — Fixed defragment(shrinkFile:durable:progress:) potentially leaving the index pointing at another page's data when the operation stopped early. Defragmentation copies page bytes for a batch of moves before updating the index in one transaction; a later move in the batch could overwrite the original slot of an earlier, not-yet-committed move. If the progress callback then cancelled the run — or a crash or I/O error interrupted it — reading the affected page returned the bytes of a different page, with no error. The pending batch is now committed before any write to a slot the committed index still references, so stopping at any point leaves every page readable with its own contents.

    Note for adopters: no API change and no migration needed. Volumes written by earlier versions remain valid; only a defragmentation interrupted mid-run could have left inconsistent data behind.