]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd/PeeringState: recover_got - add special handler for empty log 30503/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Fri, 20 Sep 2019 07:33:40 +0000 (15:33 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Fri, 20 Sep 2019 23:09:17 +0000 (07:09 +0800)
commita5e9e9099865be7a3d90c58cf3f3fc50ed6eed6d
tree98f5e76a3091fb7bd6a72afae2e72506c89f70a5
parent7ea365920bc88ec53b32bf6d9319edf5dc1dac95
osd/PeeringState: recover_got - add special handler for empty log

If we use a small osd_min[max]_pg_log_entries setting, say, 10, and
do splitting, a child pg may only be able to keep some divergent log
entries in the list. Any follow-up peering cycle on that child pg
would then rewind all the divergent log entries and lead to an empty
log list, which as a result could reliably fire the

  ceph_assert(info.last_complete == info.last_update)

assert if we start to recover any of the missing divergent objects
later.

Fixes: https://tracker.ceph.com/issues/41816
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/osd/PeeringState.cc