]> git.apps.os.sepia.ceph.com Git - ceph.git/commit
osd: wait recovery of all snapshots when reference_chunk is called 45137/head
authormyoungwon oh <ohmyoungwon@gmail.com>
Thu, 24 Feb 2022 02:29:17 +0000 (11:29 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Wed, 23 Mar 2022 06:21:28 +0000 (15:21 +0900)
commit24484742564d957b17c0069995bd1e1e812948e9
tree1d74ea5a52459c3712ceb8dddc1803053ccdb879
parentd98319f8fdec6f32febe6a715c3cb1dea67ffbeb
osd: wait recovery of all snapshots when reference_chunk is called

If a user sends reference_chunk() to the original object
(not manifest object) which has not recovered snapshots,
the OSD triggers assert() because
reference_chunk() try to find adjacent unrecovered clones,
resulting in the assert().
This is because the original object does not wait the recovery
of snapshots.

To avoid this, this commit add a condition to check a base snapshot
is readable whether the object is manifest or not.
If the base snapshot is valid and the snapshot is manifest
, osd try to calculate reference count.

fixes: https://tracker.ceph.com/issues/54509

Signed-off-by: Myoungwon Oh <myoungwon.oh@samsung.com>
src/osd/PrimaryLogPG.cc