From c4caf871aa2f9190cb49060596ec50412f1c19c1 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 17 Nov 2012 16:36:44 -0800 Subject: [PATCH] msg/DispatchQueue: fix message leak from discard_queue() We need to drop the Message ref() here; the msgr owns one ref independent of those from the intrusive_ptr's in the queue itself. Signed-off-by: Sage Weil --- src/msg/DispatchQueue.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/msg/DispatchQueue.cc b/src/msg/DispatchQueue.cc index 5e256ebdea0..04e405581a7 100644 --- a/src/msg/DispatchQueue.cc +++ b/src/msg/DispatchQueue.cc @@ -127,8 +127,9 @@ void DispatchQueue::discard_queue(uint64_t id) { i != removed.end(); ++i) { assert(!(i->is_code())); // We don't discard id 0, ever! - msgr->dispatch_throttle_release( - i->get_message()->get_dispatch_throttle_size()); + Message *m = i->get_message(); + msgr->dispatch_throttle_release(m->get_dispatch_throttle_size()); + m->put(); } } -- 2.47.3