From 0693846d9bb858f1cea4f2b0394b87d0492565fe Mon Sep 17 00:00:00 2001 From: Vladislav Date: Fri, 12 Apr 2024 22:11:47 +0300 Subject: [PATCH] chore(blocking): Remove faulty DCHECK (#2898) * chore(blocking): Remove faulty DCHECK --------- Signed-off-by: Vladislav Oleshko --- src/server/transaction.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/server/transaction.cc b/src/server/transaction.cc index c94a4ca01..79d6eaafa 100644 --- a/src/server/transaction.cc +++ b/src/server/transaction.cc @@ -1200,7 +1200,12 @@ size_t Transaction::ReverseArgIndex(ShardId shard_id, size_t arg_index) const { OpStatus Transaction::WaitOnWatch(const time_point& tp, WaitKeysProvider wkeys_provider, KeyReadyChecker krc, bool* block_flag, bool* pause_flag) { - DCHECK(!blocking_barrier_.IsClaimed()); // Blocking barrier can't be re-used + if (blocking_barrier_.IsClaimed()) { // Might have been cancelled ahead by a dropping connection + Conclude(); + return OpStatus::CANCELLED; + } + + DCHECK(!IsAtomicMulti()); // blocking inside MULTI is not allowed // Register keys on active shards blocking controllers and mark shard state as suspended. auto cb = [&](Transaction* t, EngineShard* shard) {