Skip to content

Commit 5fc600f

Browse files
Merge 65bf25e into f754a3e
2 parents f754a3e + 65bf25e commit 5fc600f

File tree

2 files changed

+13
-10
lines changed

2 files changed

+13
-10
lines changed

ydb/core/tx/columnshard/columnshard__write.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -315,18 +315,20 @@ class TCommitOperation {
315315
LockId = lock.GetLockId();
316316
SendingShards = std::set<ui64>(locks.GetSendingShards().begin(), locks.GetSendingShards().end());
317317
ReceivingShards = std::set<ui64>(locks.GetReceivingShards().begin(), locks.GetReceivingShards().end());
318-
const bool singleShardTx = SendingShards.empty() && ReceivingShards.empty();
319-
if (!singleShardTx) {
318+
if (SendingShards.empty() != ReceivingShards.empty()) {
319+
return TConclusionStatus::Fail("incorrect synchronization data (send/receiving lists)");
320+
}
321+
if (ReceivingShards.size() && SendingShards.size()) {
320322
if (!ReceivingShards.contains(TabletId) && !SendingShards.contains(TabletId)) {
321-
return TConclusionStatus::Fail("shard is absent in sending and receiving lists");
323+
return TConclusionStatus::Fail("current tablet_id is absent in sending and receiving lists");
322324
}
323-
if (locks.HasArbiterColumnShard()) {
324-
ArbiterColumnShard = locks.GetArbiterColumnShard();
325-
} else {
326-
AFL_VERIFY(!ReceivingShards.empty());
327-
ArbiterColumnShard = *ReceivingShards.begin();
325+
if (!locks.HasArbiterColumnShard()) {
326+
return TConclusionStatus::Fail("no arbiter info in request");
327+
}
328+
ArbiterColumnShard = locks.GetArbiterColumnShard();
329+
if (!ReceivingShards.contains(ArbiterColumnShard)) {
330+
return TConclusionStatus::Fail("arbiter is absent in receiving lists: " + ::ToString(ArbiterColumnShard) + " in [" + JoinSeq(", ", ReceivingShards) + "]");
328331
}
329-
AFL_VERIFY(ArbiterColumnShard);
330332
}
331333

332334
Generation = lock.GetGeneration();

ydb/core/tx/columnshard/transactions/operators/ev_write/primary.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ class TEvWriteCommitPrimaryTransactionOperator: public TEvWriteCommitSyncTransac
159159
};
160160

161161
virtual bool IsTxBroken() const override {
162-
return TxBroken.value_or(false);
162+
AFL_VERIFY(TxBroken);
163+
return *TxBroken;
163164
}
164165

165166
void InitializeRequests(TColumnShard& owner) {

0 commit comments

Comments
 (0)