From: Zengran Zhang Date: Wed, 27 Mar 2019 01:39:31 +0000 (+0800) Subject: osd: shutdown recovery_request_timer earlier X-Git-Tag: v12.2.13~240^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7d4b8f944155d4ea99609cfa9ed932c27e5b4542;p=ceph.git 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 start_shutdown --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index 3f7f79d5baf1..5f690cb0e1ef 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -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();