]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: reset tp handle when search for boundary of chunky-scrub
authorxie xingguo <xie.xingguo@zte.com.cn>
Wed, 6 Apr 2016 01:45:21 +0000 (09:45 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Wed, 6 Apr 2016 03:07:38 +0000 (11:07 +0800)
commit4d3aef75ec44abf0cb2b59e419c1089d8db8b01f
treefdafbfb6d599cae6496ac334c735d18e0bc80193
parent0b09e477a5b81bbd24bc862815cf1065d3abe8f7
osd: reset tp handle when search for boundary of chunky-scrub

One of our tests in our local testbed shows that if the number of snapshots
become extremely huge, the process of chunky-scrub() may encouter
heart-beat failure. This is because it takes a real long time for the
procedure to traverse and determine the boundary for a single run of
chunk scrub under this case.

This pr tries to solve the above the problem by resetting the tp handle
passed in once in a while(after a certain number of loops, 64 by default)
since the search can become very time-consumptive. Furthermore, the
BUILD_MAP stage later on shall encouter the same problem but has already
got fixed in the same way. Therefore, although the test case is rare,
but this change is defensive and make our code strong and thus shall be
considered as worthwhile.

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