diff options
author | t1mursadykov <t1mursadykov@ydb.tech> | 2022-10-03 17:05:07 +0300 |
---|---|---|
committer | t1mursadykov <t1mursadykov@ydb.tech> | 2022-10-03 17:05:07 +0300 |
commit | b9173d246d9bc8c4ac8b80ea9b1b1101833355a8 (patch) | |
tree | 6edb98699a5e7044aa1ae7b599e474414de4c0fe | |
parent | 5179cfc81a4dcd8aac4db5ad32d89bd77f1c462d (diff) | |
download | ydb-b9173d246d9bc8c4ac8b80ea9b1b1101833355a8.tar.gz |
Fix FailRealm checking in CMS
-rw-r--r-- | ydb/core/cms/cms_ut.cpp | 38 | ||||
-rw-r--r-- | ydb/core/cms/cms_ut_common.cpp | 2 | ||||
-rw-r--r-- | ydb/core/cms/erasure_checkers.cpp | 4 |
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, |