summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYan, Zheng <zheng.z.yan@intel.com>2013-04-27 11:04:38 +0800
committerSage Weil <sage@inktank.com>2013-04-28 21:15:25 -0700
commitcea2ff86153b3193d2a6e320615e519ba41b1f3b (patch)
treed931df62a6a6ca1927382891878083f6a4688876
parent20d99c4a5aa3147fe464aa4d75b7c8e8710030ad (diff)
downloadceph-cea2ff86153b3193d2a6e320615e519ba41b1f3b.tar.gz
mon: Fix leak of context
Use Context::complete() to finish context, it frees the context after executing Context::finish(). Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
-rw-r--r--src/mon/Paxos.cc2
-rw-r--r--src/mon/Paxos.h6
2 files changed, 5 insertions, 3 deletions
diff --git a/src/mon/Paxos.cc b/src/mon/Paxos.cc
index 21b9343f14c..46eaf88273d 100644
--- a/src/mon/Paxos.cc
+++ b/src/mon/Paxos.cc
@@ -805,7 +805,7 @@ void Paxos::finish_queued_proposal()
<< " to finish" << dendl;
proposals.pop_front();
- proposal->finish(0);
+ proposal->complete(0);
}
}
diff --git a/src/mon/Paxos.h b/src/mon/Paxos.h
index 8fcf66b25db..ca467ce3db8 100644
--- a/src/mon/Paxos.h
+++ b/src/mon/Paxos.h
@@ -642,8 +642,10 @@ public:
{ }
void finish(int r) {
- if (proposer_context)
- proposer_context->finish(r);
+ if (proposer_context) {
+ proposer_context->complete(r);
+ proposer_context = NULL;
+ }
}
};
/**