do_transaction_no_callbacks() relied on with_repeat_trans_intr()
implicitly resetting the transaction before every retry attempt.
That behavior is policy, not retry mechanics, so it should live
with the caller.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
++(shard_stats.processing_inlock_io_num);
co_await with_repeat_trans_intr(
+ [&, this] {
+ // Preserve handle and rewind the external iterator before each attempt.
+ ctx.reset_preserve_handle(*transaction_manager);
+ },
*ctx.transaction,
seastar::coroutine::lambda([&ctx, this, FNAME](auto &t)
-> tm_ret {
ctx.iter.colls.size(),
ctx.iter.objects.size());
- ctx.reset_preserve_handle(*transaction_manager);
std::vector<OnodeRef> onodes(ctx.iter.objects.size());
// Get the total number of operations from the transaction