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 shutdown and start_shutdown
Mutex::Locker l(sleep_lock);
sleep_timer.shutdown();
}
+
+ {
+ Mutex::Locker l(recovery_request_lock);
+ recovery_request_timer.shutdown();
+ }
}
void OSDService::shutdown_reserver()
f->stop();
}
- {
- Mutex::Locker l(recovery_request_lock);
- recovery_request_timer.shutdown();
- }
-
osdmap = OSDMapRef();
next_osdmap = OSDMapRef();
}