aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authort1mursadykov <t1mursadykov@ydb.tech>2022-10-03 17:05:07 +0300
committert1mursadykov <t1mursadykov@ydb.tech>2022-10-03 17:05:07 +0300
commitb9173d246d9bc8c4ac8b80ea9b1b1101833355a8 (patch)
tree6edb98699a5e7044aa1ae7b599e474414de4c0fe
parent5179cfc81a4dcd8aac4db5ad32d89bd77f1c462d (diff)
downloadydb-b9173d246d9bc8c4ac8b80ea9b1b1101833355a8.tar.gz
Fix FailRealm checking in CMS
-rw-r--r--ydb/core/cms/cms_ut.cpp38
-rw-r--r--ydb/core/cms/cms_ut_common.cpp2
-rw-r--r--ydb/core/cms/erasure_checkers.cpp4
3 files changed, 14 insertions, 30 deletions
diff --git a/ydb/core/cms/cms_ut.cpp b/ydb/core/cms/cms_ut.cpp
index 8bfabe928cf..c38b96315df 100644
--- a/ydb/core/cms/cms_ut.cpp
+++ b/ydb/core/cms/cms_ut.cpp
@@ -1073,15 +1073,12 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
Y_UNIT_TEST(StateStorageTwoRings)
{
- TTestEnvOpts options;
- options.NodeCount = 5;
- options.DataCenterCount = 5;
+ TTestEnvOpts options(5);
options.VDisks = 0;
options.NRings = 2;
options.RingSize = 2;
options.NToSelect = 2;
- options.UseMirror3dcErasure = false;
-
+
TCmsTestEnv env(options);
env.CheckPermissionRequest("user", false, false, false, true, TStatus::ALLOW,
@@ -1093,15 +1090,12 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
Y_UNIT_TEST(StateStorageNodesFromOneRing)
{
- TTestEnvOpts options;
- options.NodeCount = 5;
+ TTestEnvOpts options(5);
options.VDisks = 0;
options.NRings = 2;
options.RingSize = 2;
options.NToSelect = 2;
- options.DataCenterCount = 5;
- options.UseMirror3dcErasure = false;
-
+
TCmsTestEnv env(options);
env.CheckPermissionRequest("user", false, false, false, true, TStatus::ALLOW,
@@ -1113,15 +1107,12 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
Y_UNIT_TEST(StateStorageAvailabilityMode)
{
- TTestEnvOpts options;
- options.NodeCount = 5;
+ TTestEnvOpts options(5);
options.VDisks = 0;
options.NRings = 2;
options.RingSize = 2;
options.NToSelect = 2;
- options.DataCenterCount = 5;
- options.UseMirror3dcErasure = false;
-
+
TCmsTestEnv env(options);
TFakeNodeWhiteboardService::Info[env.GetNodeId(1)].Connected = false;
@@ -1136,15 +1127,12 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
Y_UNIT_TEST(StateStorageTwoBrokenRings)
{
- TTestEnvOpts options;
- options.NodeCount = 7;
- options.DataCenterCount = 7;
+ TTestEnvOpts options(7);
options.VDisks = 0;
options.NRings = 3;
options.RingSize = 2;
options.NToSelect = 2;
- options.UseMirror3dcErasure = false;
-
+
TCmsTestEnv env(options);
TFakeNodeWhiteboardService::Info[env.GetNodeId(0)].Connected = false;
@@ -1161,15 +1149,12 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
Y_UNIT_TEST(StateStorageRollingRestart)
{
- TTestEnvOpts options;
- options.NodeCount = 20;
- options.DataCenterCount = 20;
+ TTestEnvOpts options(20);
options.VDisks = 0;
options.NRings = 6;
options.RingSize = 3;
options.NToSelect = 5;
- options.UseMirror3dcErasure = false;
-
+
TCmsTestEnv env(options);
TIntrusiveConstPtr<TStateStorageInfo> info = env.GetStateStorageInfo();
@@ -1309,9 +1294,8 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
Y_UNIT_TEST(Mirror3dcPermissions)
{
- TTestEnvOpts options;
+ TTestEnvOpts options(18);
options.UseMirror3dcErasure = true;
- options.NodeCount = 18;
options.VDisks = 9;
options.NRings = 3;
options.DataCenterCount = 3;
diff --git a/ydb/core/cms/cms_ut_common.cpp b/ydb/core/cms/cms_ut_common.cpp
index 3e200e0de57..fc254a89d6d 100644
--- a/ydb/core/cms/cms_ut_common.cpp
+++ b/ydb/core/cms/cms_ut_common.cpp
@@ -303,7 +303,7 @@ void GenerateExtendedInfo(TTestActorRuntime &runtime, NKikimrBlobStorage::TBaseC
ui32 groupId = groupShift + vdiskId;
ui32 failRealm = 0;
if (useMirror3dcErasure)
- failRealm = nodeIndex % 8;
+ failRealm = (nodeIndex % 9) / 3;
TVDiskID id = {(ui8)groupId, 1, (ui8)failRealm, (ui8)(nodeIndex % 8), (ui8)0};
diff --git a/ydb/core/cms/erasure_checkers.cpp b/ydb/core/cms/erasure_checkers.cpp
index 41d59689fa1..0009db01669 100644
--- a/ydb/core/cms/erasure_checkers.cpp
+++ b/ydb/core/cms/erasure_checkers.cpp
@@ -159,7 +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);
- ++DataCenterDisabledNodes[vdisk.VDiskId.FailRealm / 3];
+ ++DataCenterDisabledNodes[vdisk.VDiskId.FailRealm];
}
}
@@ -173,7 +173,7 @@ void TMirror3dcCounter::CountGroupState(TClusterInfoPtr info,
CountVDisk(info->VDisk(vdId), info, retryTime, duration, error);
}
++Locked;
- ++DataCenterDisabledNodes[VDisk.VDiskId.FailRealm / 3];
+ ++DataCenterDisabledNodes[VDisk.VDiskId.FailRealm];
}
void TDefaultErasureCounter::CountGroupState(TClusterInfoPtr info,