From: Samuel Just Date: Thu, 27 Feb 2014 22:41:11 +0000 (-0800) Subject: ECBackend: don't leak transactions X-Git-Tag: v0.78~111^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1326%2Fhead;p=ceph.git ECBackend: don't leak transactions Fixes: #7539 Signed-off-by: Samuel Just --- diff --git a/src/osd/ECBackend.cc b/src/osd/ECBackend.cc index 59d6b537a426..f83d2977a566 100644 --- a/src/osd/ECBackend.cc +++ b/src/osd/ECBackend.cc @@ -445,6 +445,8 @@ void ECBackend::dispatch_recovery_messages(RecoveryMessages &m, int priority) get_parent(), get_parent()->get_epoch(), replies))); + m.t->register_on_applied( + new ObjectStore::C_DeleteTransaction(m.t)); get_parent()->queue_transaction(m.t); m.t = NULL; if (m.reads.empty()) @@ -819,6 +821,8 @@ void ECBackend::handle_sub_write( localt->register_on_applied( get_parent()->bless_context( new SubWriteApplied(this, msg, op.tid, op.at_version))); + localt->register_on_applied( + new ObjectStore::C_DeleteTransaction(localt)); get_parent()->queue_transaction(localt, msg); }