]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ECBackend: don't leak transactions 1326/head
authorSamuel Just <sam.just@inktank.com>
Thu, 27 Feb 2014 22:41:11 +0000 (14:41 -0800)
committerSamuel Just <sam.just@inktank.com>
Fri, 28 Feb 2014 19:27:10 +0000 (11:27 -0800)
Fixes: #7539
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/ECBackend.cc

index 59d6b537a426bf9910fcc2c52177a1b766a7a046..f83d2977a566a6e64d21c24e26bf1a13b7ce0a04 100644 (file)
@@ -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);
 }