]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
crimson/seastore: keep on-page checksum in sync after merge_content_to 70418/head
authorKautilya Tripathi <kautilya.tripathi@ibm.com>
Wed, 22 Jul 2026 06:01:51 +0000 (11:31 +0530)
committerKautilya Tripathi <kautilya.tripathi@ibm.com>
Wed, 22 Jul 2026 06:02:25 +0000 (11:32 +0530)
commitf7b898ab6cc19eb0fe2b996648de51b7f26ecc6c
treee058be437a9726f1e58f3992bacc10fd0c59d923
parent57f86c05a090702c2002605b785908ec838c2879
crimson/seastore: keep on-page checksum in sync after merge_content_to

When a rewrite transaction publishes via no-conflict handoff, merge_content_to
can update an already CRC-stamped initial-pending fixedkv page (copy-dest of a
concurrent split). It refreshed last_committed_crc but not the in-extent phy
checksum, so the page could be written with new content and a stale stamp.
Debug asserts only compare last_committed_crc to calc_crc32c(), so the mismatch
survived until a later cold read aborted with "fixedkv extent checksum
inconsistent".

Recalculate the CRC and call update_in_extent_chksum_field together in both
LBALeafNode and FixedKVInternalNode merge_content_to, matching
apply_delta_and_adjust_crc / update_lba_mappings.

Fixes: https://tracker.ceph.com/issues/77022
Signed-off-by: Kautilya Tripathi <kautilya.tripathi@ibm.com>
src/crimson/os/seastore/btree/fixed_kv_node.h
src/crimson/os/seastore/lba/lba_btree_node.h