]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd/PrimaryLogPG: check whether clones missing from the cache are recovering
authorJosh Durgin <jdurgin@redhat.com>
Wed, 21 Jun 2017 00:29:04 +0000 (20:29 -0400)
committerJosh Durgin <jdurgin@redhat.com>
Mon, 17 Jul 2017 06:00:36 +0000 (02:00 -0400)
commitb41fa997261658003bd6bdd9ccd2665acae4cb7c
tree5adbcd0ded95335d2bb0dc33ac7c146071bb47f6
parent96f9ff1be8f3ac2528d586997f70d1b8471e10d8
osd/PrimaryLogPG: check whether clones missing from the cache are recovering

This appears now that deletes are not processed inline from the PG log
- a clone that is missing only on a peer (due to being deleted) would
not stop rollback from promoting the clone, resulting in hitting an
assert on the replica when the promotion tried to write to the missing
object on the replica.

This only affects cache tiering due to the dependence on the
MAP_SNAP_CLONE flag in find_object_context() - missing_oid was not being checked for being
recovered, unlike the target oid for the op (in do_op()).

Signed-off-by: Josh Durgin <jdurgin@redhat.com>
src/osd/PrimaryLogPG.cc