The onreadable is allowed to delete the Transaction
dout(10) << "queue_transactions (trailing journal) " << op_seq << " " << tls << dendl;
int r = do_transactions(tls, op_seq);
op_apply_finish();
- op_finisher.queue(onreadable, r);
if (r >= 0) {
op_journal_start(op_seq);
delete onjournal;
delete ondisk;
}
+
+ // start on_readable finisher after we queue journal item, as on_readable callback
+ // is allowed to delete the Transaction
+ op_finisher.queue(onreadable, r);
+
return r;
}