At present, if a transaction gets interrupted right after it enters
WritePipeline::ReserveProjectedUsage and before any later continuations
get executed, WritePipeline::ReserveProjectedUsage will be locked
forever.
Signed-off-by: Xuehan Xu <xuxuehan@qianxin.com>
}
~Transaction() {
+ get_handle().exit();
on_destruct(*this);
invalidate_clear_write_set();
}
if (!has_reset) {
has_reset = true;
}
+ get_handle().exit();
}
bool did_reset() const {
ceph_assert(0 == "Hit error submitting to journal");
})
);
- }).finally([&tref]() {
- tref.get_handle().exit();
});
}