]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
osd: prime splits/merges for any potential fabricated split/merge participant 30371/head
authorxie xingguo <xie.xingguo@zte.com.cn>
Thu, 29 Aug 2019 05:47:42 +0000 (13:47 +0800)
committerPrashant D <pdhange@redhat.com>
Thu, 12 Sep 2019 23:44:40 +0000 (19:44 -0400)
commit42db65d34d7d55b9d588d94c74820d333587a1af
tree10c099369e7663ef02d60a23c6aeda00fd32b95b
parenta6e846c84b3c8a343e850d139892867dcfcb88eb
osd: prime splits/merges for any potential fabricated split/merge participant

If we have to fabricate a merge target, we need to prime any future splits
it might have.  Otherwise a sequence like

- e100 1.f merge to 1.7
- e110 1.7 split to 1.f, 1.17, 1.1f

where we process all of the above in one go at, say, e120, will lead to
a crash in register_and_wake_split_child because 1.17 and/or 1.1f aren't
primed.

Fix by making identify_splits_and_merges do a recursive scan on any
merge/split participants detected too.

Fixes: http://tracker.ceph.com/issues/38483
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit 6afe4f16dbf15f84074dd4e787d182d18dbccfa6)
src/osd/OSD.cc