]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: shutdown recovery_request_timer earlier 27810/head
authorZengran Zhang <zhangzengran@sangfor.com.cn>
Wed, 27 Mar 2019 01:39:31 +0000 (09:39 +0800)
committerPrashant D <pdhange@redhat.com>
Fri, 26 Apr 2019 08:58:31 +0000 (04:58 -0400)
recovery_request_timer may hold some QueuePeeringEvts which PGRef,
if we dont shutdown it earlier, it potentially cause the PGRef leak
when kicking pg.

Fixes: https://tracker.ceph.com/issues/38945
Signed-off-by: Zengran Zhang <zhangzengran@sangfor.com.cn>
(cherry picked from commit bb41bdfdb14768b5d46b7b1334bba1a3909e2618)

Conflicts:
src/osd/OSD.cc : Resolved in start_shutdown

src/osd/OSD.cc

index 3f7f79d5baf1d32118a757e8bc263b9fa9e77a02..5f690cb0e1ef52a5f16a17d3ef7dcd74bf7c4ade 100644 (file)
@@ -510,6 +510,11 @@ void OSDService::start_shutdown()
     Mutex::Locker l(recovery_sleep_lock);
     recovery_sleep_timer.shutdown();
   }
+
+  {
+    Mutex::Locker l(recovery_request_lock);
+    recovery_request_timer.shutdown();
+  }
 }
 
 void OSDService::shutdown_reserver()
@@ -529,11 +534,6 @@ void OSDService::shutdown()
   objecter_finisher.wait_for_empty();
   objecter_finisher.stop();
 
-  {
-    Mutex::Locker l(recovery_request_lock);
-    recovery_request_timer.shutdown();
-  }
-
   {
     Mutex::Locker l(snap_sleep_lock);
     snap_sleep_timer.shutdown();