Skip to content

Commit e712090

Browse files
Merge 7ce8a4a into 2876ba4
2 parents 2876ba4 + 7ce8a4a commit e712090

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

ydb/core/tx/columnshard/columnshard__write.cpp

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -313,19 +313,21 @@ class TCommitOperation {
313313
auto& lock = evWrite.Record.GetLocks().GetLocks()[0];
314314
SendingShards = std::set<ui64>(locks.GetSendingShards().begin(), locks.GetSendingShards().end());
315315
ReceivingShards = std::set<ui64>(locks.GetReceivingShards().begin(), locks.GetReceivingShards().end());
316-
if (!ReceivingShards.size() || !SendingShards.size()) {
317-
ReceivingShards.clear();
318-
SendingShards.clear();
319-
} else if (!locks.HasArbiterColumnShard()) {
320-
ArbiterColumnShard = *ReceivingShards.begin();
321-
if (!ReceivingShards.contains(TabletId) && !SendingShards.contains(TabletId)) {
322-
return TConclusionStatus::Fail("shard is incorrect for sending/receiving lists");
323-
}
324-
} else {
325-
ArbiterColumnShard = locks.GetArbiterColumnShard();
326-
AFL_VERIFY(ArbiterColumnShard);
327-
if (!ReceivingShards.contains(TabletId) && !SendingShards.contains(TabletId)) {
328-
return TConclusionStatus::Fail("shard is incorrect for sending/receiving lists");
316+
if (SendingShards.empty() != ReceivingShards.empty()) {
317+
return TConclusionStatus::Fail("incorrect synchronization data (send/receiving lists)");
318+
}
319+
if (ReceivingShards.size() && SendingShards.size()) {
320+
if (!locks.HasArbiterColumnShard()) {
321+
ArbiterColumnShard = *ReceivingShards.begin();
322+
if (!ReceivingShards.contains(TabletId) && !SendingShards.contains(TabletId)) {
323+
return TConclusionStatus::Fail("shard is incorrect for sending/receiving lists");
324+
}
325+
} else {
326+
ArbiterColumnShard = locks.GetArbiterColumnShard();
327+
AFL_VERIFY(ArbiterColumnShard);
328+
if (!ReceivingShards.contains(TabletId) && !SendingShards.contains(TabletId)) {
329+
return TConclusionStatus::Fail("shard is incorrect for sending/receiving lists");
330+
}
329331
}
330332
}
331333

0 commit comments

Comments
 (0)