aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authort1mursadykov <t1mursadykov@ydb.tech>2022-10-06 12:16:49 +0300
committert1mursadykov <t1mursadykov@ydb.tech>2022-10-06 12:16:49 +0300
commit92515b8e8d1c011fcbd3916230ef55e294bf9be5 (patch)
tree1177fa4a54d8248b24b76a323013ea42e140f728
parentf691e892568ed44ba61c85b96bfe665cb0e47a7a (diff)
downloadydb-92515b8e8d1c011fcbd3916230ef55e294bf9be5.tar.gz
Fix Mirror3dc max availability in CMS
-rw-r--r--ydb/core/cms/cms_ut.cpp8
-rw-r--r--ydb/core/cms/erasure_checkers.cpp1
2 files changed, 9 insertions, 0 deletions
diff --git a/ydb/core/cms/cms_ut.cpp b/ydb/core/cms/cms_ut.cpp
index c38b96315df..740181c370b 100644
--- a/ydb/core/cms/cms_ut.cpp
+++ b/ydb/core/cms/cms_ut.cpp
@@ -1304,6 +1304,14 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
TCmsTestEnv env(options);
+ env.CheckPermissionRequest("user", false, true, false, true, MODE_MAX_AVAILABILITY, TStatus::ALLOW,
+ MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(2), 60000000, "storage"));
+
+ TFakeNodeWhiteboardService::Info[env.GetNodeId(1)].Connected = false;
+ env.RestartCms();
+
+ env.CheckPermissionRequest("user", false, true, false, true, MODE_MAX_AVAILABILITY, TStatus::DISALLOW_TEMP,
+ MakeAction(TAction::RESTART_SERVICES, env.GetNodeId(2), 60000000, "storage"));
// 3dc disabled
TFakeNodeWhiteboardService::Info[env.GetNodeId(7)].Connected = false;
TFakeNodeWhiteboardService::Info[env.GetNodeId(4)].Connected = false;
diff --git a/ydb/core/cms/erasure_checkers.cpp b/ydb/core/cms/erasure_checkers.cpp
index 0009db01669..122cd4b9b35 100644
--- a/ydb/core/cms/erasure_checkers.cpp
+++ b/ydb/core/cms/erasure_checkers.cpp
@@ -159,6 +159,7 @@ void TMirror3dcCounter::CountVDisk(const TVDiskInfo& vdisk,
error.Reason = TStringBuilder() << "Issue in affected group " << GroupId
<< ". " << err.Reason;
error.Deadline = Max(error.Deadline, err.Deadline);
+ ++Locked;
++DataCenterDisabledNodes[vdisk.VDiskId.FailRealm];
}
}