Summary
apply_spill_completions (src/shard/persistence_tick.rs ~407-414) populates the in-memory cold_index unconditionally, but if the preceding manifest.commit() returns Err it only logs a warning and continues. Cold read-through works in the live process (the index is populated), but if the process crashes between the failed commit and the next successful one, rebuild_from_manifest rebuilds from on-disk state that does not include the file's entry — those cold keys are silently lost (the .mpf exists on disk but nothing indexes it after restart).
Severity
LOW-MEDIUM. Pre-existing; surfaced in the PR #136 self-review. Window is narrow (failed commit → crash before next commit) but the failure is silent.
Suggested fix
On commit() failure either (a) retry/escalate before populating the index, or (b) record the pending entry in a recovery-visible side-log so a crash in the window can rebuild it. At minimum, surface a metric/counter for failed cold-manifest commits.
Context
Found during PR #136 review (multishard stability + disk-offload durability). Reviewer-reported, not independently reproduced.
Summary
apply_spill_completions(src/shard/persistence_tick.rs ~407-414) populates the in-memorycold_indexunconditionally, but if the precedingmanifest.commit()returnsErrit only logs a warning and continues. Cold read-through works in the live process (the index is populated), but if the process crashes between the failed commit and the next successful one,rebuild_from_manifestrebuilds from on-disk state that does not include the file's entry — those cold keys are silently lost (the.mpfexists on disk but nothing indexes it after restart).Severity
LOW-MEDIUM. Pre-existing; surfaced in the PR #136 self-review. Window is narrow (failed commit → crash before next commit) but the failure is silent.
Suggested fix
On
commit()failure either (a) retry/escalate before populating the index, or (b) record the pending entry in a recovery-visible side-log so a crash in the window can rebuild it. At minimum, surface a metric/counter for failed cold-manifest commits.Context
Found during PR #136 review (multishard stability + disk-offload durability). Reviewer-reported, not independently reproduced.