From a4625f4bd6fc6f280290c2232fd44284e3bc7840 Mon Sep 17 00:00:00 2001 From: Denis Rystsov Date: Thu, 16 Jun 2022 11:16:23 -0700 Subject: [PATCH] removes wierdness --- src/v/cluster/rm_stm.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/v/cluster/rm_stm.cc b/src/v/cluster/rm_stm.cc index bddabf51cc91b..daf55f4733555 100644 --- a/src/v/cluster/rm_stm.cc +++ b/src/v/cluster/rm_stm.cc @@ -748,7 +748,7 @@ ss::future> rm_stm::replicate( return replicate_tx(bid, std::move(b)); }) .finally([u = std::move(unit)] {}); - } else if (bid.has_idempotent() && bid.first_seq <= bid.last_seq) { + } else if (bid.has_idempotent()) { request_id rid{.pid = bid.pid, .seq = bid.first_seq}; return with_request_lock( rid, @@ -1043,6 +1043,16 @@ ss::future> rm_stm::replicate_seq( } auto synced_term = _insync_term; + if (bid.first_seq > bid.last_seq) { + vlog( + clusterlog.warn, + "first_seq={} of the batch should be less or equal to last_seq={}", + bid.first_seq, + bid.last_seq); + outcome->set_value(); + co_return errc::generic_tx_error; + } + auto cached_offset = known_seq(bid); if (cached_offset) { if (cached_offset.value() < model::offset{0}) {