ceph/qa/workunits/rbd
Josef Johansson 21a26a7528 librbd: Fix local rbd mirror journals growing forever
This commit fixes commit 7ca1bab90f by pushing properly aligned
discards back to m_image_extents, if corrected.

If discards are misaligned (off 0, len 4608, gran=4096), they are
corrected properly, but only in object_extents and not in
m_image_extents.

When journal_append_event is triggered it will only append from
m_image_extents and does not now about the alignment fixes. In
commit_io_events_extent it will log a message and return without
completing the io since the larger misaligned area was sent to the journal.
This will in turn break rbd journal mirroring since the local client will wait
indefinately on the commit to be completed, which it never does.

This does not effect rbd-mirror in any way, which may be confusing and
dangerous since it's only rbd-mirror that updates ceph health, and not
the local client.

Setting `rbd_skip_partial_discard = false` under client will restore the
pre 7ca1bab behaviour and thus not trigger the bug with journals growing.
This will set `rbd_discard_granularity_bytes = 0` internally. This
setting is only changed during startup of a client.

Fixes: 7ca1bab90f
Fixes: https://tracker.ceph.com/issues/57396
Signed-off-by: Josef Johansson <josef@oderland.se>
2023-01-20 11:59:16 +01:00
..
cli_generic.sh
cli_migration.sh
concurrent.sh
diff_continuous.sh
diff.sh
huge-tickets.sh
image_read.sh
import_export.sh
issue-20295.sh
journal.sh
kernel.sh
krbd_data_pool.sh
krbd_exclusive_option.sh
krbd_fallocate.sh
krbd_huge_osdmap.sh
krbd_latest_osdmap_on_map.sh
krbd_namespaces.sh
krbd_rxbounce.sh
krbd_stable_writes.sh
krbd_udev_enumerate.sh
krbd_udev_netlink_enobufs.sh
krbd_udev_netns.sh
krbd_udev_symlinks.sh
krbd_wac.sh
luks-encryption.sh qa/workunits/rbd: add encryption-aware resize test 2022-12-04 18:24:10 +01:00
map-snapshot-io.sh
map-unmap.sh
merge_diff.sh
notify_master.sh
notify_slave.sh
permissions.sh
qemu_dynamic_features.sh
qemu_rebuild_object_map.sh
qemu-iotests.sh
qos.sh
rbd_groups.sh qa: rbd_groups.sh: change interpreter to bash 2022-12-04 13:20:44 +01:00
rbd_mirror_bootstrap.sh
rbd_mirror_fsx_compare.sh
rbd_mirror_fsx_prepare.sh
rbd_mirror_ha.sh
rbd_mirror_helpers.sh
rbd_mirror_journal.sh
rbd_mirror_snapshot.sh
rbd_mirror_stress.sh
rbd-ggate.sh
rbd-nbd.sh librbd: Fix local rbd mirror journals growing forever 2023-01-20 11:59:16 +01:00
read-flags.sh
simple_big.sh
test_admin_socket.sh
test_librbd_python.sh
test_librbd.sh
test_lock_fence.sh
test_rbd_mirror.sh
test_rbd_tasks.sh
test_rbdmap_RBDMAPFILE.sh
verify_pool.sh