]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
crimson/.../fixed_kv_node: don't call copy_out if delta_buffer is empty 65017/head
authorSamuel Just <sjust@redhat.com>
Wed, 13 Aug 2025 16:54:35 +0000 (09:54 -0700)
committerSamuel Just <sjust@redhat.com>
Tue, 19 Aug 2025 20:01:48 +0000 (20:01 +0000)
commit77560484766e1f21b0dc9d7e0ee2803360665af7
tree5b8c3a5888b865dd7938fe1d401a750f6668e5ef
parent7b5fe620593d347c0d025daa20ed68b00ba4af35
crimson/.../fixed_kv_node: don't call copy_out if delta_buffer is empty

Cache::mark_transaction_conflicted calls get_delta(), which in turn
calls FixedKVNodeLayout::copy_out for lba nodes. If the mutation_pending
extent happens not to have any deltas, it'll fail in memcpy in
FixedKVNodeLayout::copy_out.

I think this is valid because a transaction may become conflicted
between when duplicate_for_write is called and when the actual mutation
is performed on the extent.

Fixes: https://tracker.ceph.com/issues/72579
Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/btree/fixed_kv_node.h