]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: prime splits/merges for any potential fabricated split/merge participant
authorxie xingguo <xie.xingguo@zte.com.cn>
Thu, 29 Aug 2019 05:47:42 +0000 (13:47 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Fri, 30 Aug 2019 00:24:30 +0000 (08:24 +0800)
commit6afe4f16dbf15f84074dd4e787d182d18dbccfa6
tree1e0bb21c09dd3e70c346dea83d30f67f678d23ba
parent6f74759cf4cd211f30c765f5c1dac851778a010f
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>
src/osd/OSD.cc