});
}
-void SeaStore::Shard::on_error(ceph::os::Transaction &t) {
- LOG_PREFIX(SeaStoreS::on_error);
- ERROR(" transaction dump:\n");
+void SeaStore::Shard::transaction_dump(ceph::os::Transaction &t) {
+ LOG_PREFIX(SeaStoreS::transaction_dump);
+ ERROR("");
JSONFormatter f(true);
f.open_object_section("transaction");
t.dump(&f);
std::stringstream str;
f.flush(str);
ERROR("{}", str.str());
- abort();
}
seastar::future<> SeaStore::Shard::do_transaction_no_callbacks(
co_await transaction_manager->submit_transaction(*ctx.transaction);
})
).handle_error(
- crimson::ct_error::all_same_way([&ctx](auto e) {
- on_error(ctx.ext_transaction);
+ crimson::ct_error::all_same_way([FNAME, &ctx](auto e) {
+ transaction_dump(ctx.ext_transaction);
+ ceph_abort_msg(fmt::format("{} unexpected error: {}", FNAME, e));
return seastar::now();
})
);
TransactionManager::read_extent_iertr::future<std::optional<unsigned>>
get_coll_bits(CollectionRef ch, Transaction &t) const;
- static void on_error(ceph::os::Transaction &t);
+ static void transaction_dump(ceph::os::Transaction &t);
template <typename Ret, typename F>
auto repeat_with_onode(