From 496c3058c03e8595a01fd03c26714ccfd1e50f10 Mon Sep 17 00:00:00 2001 From: "yaohui.zhou" Date: Wed, 22 Apr 2020 10:26:56 +0800 Subject: [PATCH] common/TrackedOp: fix osd reboot optracker coredump Signed-off-by: yaohui.zhou --- src/common/TrackedOp.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/common/TrackedOp.cc b/src/common/TrackedOp.cc index f1b35e7e57aa..ddb0f3fbfd2a 100644 --- a/src/common/TrackedOp.cc +++ b/src/common/TrackedOp.cc @@ -170,6 +170,14 @@ OpTracker::OpTracker(CephContext *cct_, bool tracking, uint32_t num_shards): OpTracker::~OpTracker() { while (!sharded_in_flight_list.empty()) { + ShardedTrackingData* sdata = sharded_in_flight_list.back(); + ceph_assert(NULL != sdata); + while (!sdata->ops_in_flight_sharded.empty()) { + { + std::lock_guard locker(sdata->ops_in_flight_lock_sharded); + sdata->ops_in_flight_sharded.pop_back(); + } + } ceph_assert((sharded_in_flight_list.back())->ops_in_flight_sharded.empty()); delete sharded_in_flight_list.back(); sharded_in_flight_list.pop_back(); -- 2.47.3