From 557b913025add1c4ddc10c1fd92c0c27ee3540df Mon Sep 17 00:00:00 2001 From: Zengran Zhang Date: Wed, 27 Mar 2019 09:39:31 +0800 Subject: [PATCH] osd: shutdown recovery_request_timer earlier 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 (cherry picked from commit bb41bdfdb14768b5d46b7b1334bba1a3909e2618) Conflicts: src/osd/OSD.cc : Resolved in shutdown and start_shutdown --- src/osd/OSD.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 4f37077a1cd2..49de7ba5030b 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -374,6 +374,11 @@ void OSDService::start_shutdown() Mutex::Locker l(sleep_lock); sleep_timer.shutdown(); } + + { + Mutex::Locker l(recovery_request_lock); + recovery_request_timer.shutdown(); + } } void OSDService::shutdown_reserver() @@ -395,11 +400,6 @@ void OSDService::shutdown() f->stop(); } - { - Mutex::Locker l(recovery_request_lock); - recovery_request_timer.shutdown(); - } - osdmap = OSDMapRef(); next_osdmap = OSDMapRef(); } -- 2.47.3