]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix unhealth heartbeat during rejoin 21366/head
authordongdong tao <tdd21151186@gmail.com>
Fri, 30 Mar 2018 15:30:55 +0000 (23:30 +0800)
committerPrashant D <pdhange@redhat.com>
Thu, 12 Apr 2018 01:36:27 +0000 (21:36 -0400)
function process_imported_caps might hold mds_lock too long,
mds tick thread will be starved, and leads to unhealth heartbeat check.
which would eventually make the mds been kicked by the monitor during rejoin phase.

Fixes: https://tracker.ceph.com/issues/23530
Signed-off-by: dongdong tao <tdd21151186@gmail.com>
(cherry picked from commit 8539a9827ba86c44a5285925923a16b8764a6a0a)

src/mds/MDCache.cc

index e954c8912a57fbc6c470ff20d3626dac6556e3c7..e6be1c524180c8e6cabf56cf7dc2a3d53eb0ad25 100644 (file)
@@ -5275,6 +5275,8 @@ bool MDCache::process_imported_caps()
     cap_imports_num_opening++;
     dout(10) << "  opening missing ino " << p->first << dendl;
     open_ino(p->first, (int64_t)-1, new C_MDC_RejoinOpenInoFinish(this, p->first), false);
+    if (!(cap_imports_num_opening % 1000))
+      mds->heartbeat_reset();
   }
 
   if (cap_imports_num_opening > 0)