diff options
author | kruall <kruall@ydb.tech> | 2022-10-12 18:16:28 +0300 |
---|---|---|
committer | kruall <kruall@ydb.tech> | 2022-10-12 18:16:28 +0300 |
commit | 8909b817625dffa3f87d76eb5854a89040785ddc (patch) | |
tree | fea4071bedadbb5433b78b13655a179a02e69821 | |
parent | 46c1dd8bb937c8d5c4eacd6b836beb567dccae19 (diff) | |
download | ydb-8909b817625dffa3f87d76eb5854a89040785ddc.tar.gz |
Fix http wipe request,
-rw-r--r-- | ydb/core/mind/bscontroller/config.cpp | 26 | ||||
-rw-r--r-- | ydb/core/mind/bscontroller/config_cmd.cpp | 2 | ||||
-rw-r--r-- | ydb/core/mind/bscontroller/drop_donor.cpp | 2 | ||||
-rw-r--r-- | ydb/core/mind/bscontroller/impl.h | 2 | ||||
-rw-r--r-- | ydb/core/mind/bscontroller/node_report.cpp | 2 | ||||
-rw-r--r-- | ydb/core/mind/bscontroller/register_node.cpp | 2 | ||||
-rw-r--r-- | ydb/core/mind/bscontroller/virtual_group.cpp | 6 | ||||
-rw-r--r-- | ydb/core/protos/blobstorage_config.proto | 3 |
8 files changed, 26 insertions, 19 deletions
diff --git a/ydb/core/mind/bscontroller/config.cpp b/ydb/core/mind/bscontroller/config.cpp index f5493b01f1..d4d7dbcb6d 100644 --- a/ydb/core/mind/bscontroller/config.cpp +++ b/ydb/core/mind/bscontroller/config.cpp @@ -258,7 +258,8 @@ namespace NKikimr::NBsController { }; bool TBlobStorageController::CommitConfigUpdates(TConfigState& state, bool suppressFailModelChecking, - bool suppressDegradedGroupsChecking, TTransactionContext& txc, TString *errorDescription) { + bool suppressDegradedGroupsChecking, bool suppressDisintegratedGroupsChecking, + TTransactionContext& txc, TString *errorDescription) { NIceDb::TNiceDb db(txc.DB); for (auto&& [base, overlay] : state.Groups.Diff()) { @@ -275,16 +276,19 @@ namespace NKikimr::NBsController { } } - for (auto&& [base, overlay] : state.Groups.Diff()) { - if (base && overlay->second) { - const TGroupInfo::TGroupStatus& prev = base->second->Status; - const TGroupInfo::TGroupStatus& status = overlay->second->Status; - if (status.ExpectedStatus == NKikimrBlobStorage::TGroupStatus::DISINTEGRATED && - status.ExpectedStatus != prev.ExpectedStatus) { // status did really change - *errorDescription = TStringBuilder() << "GroupId# " << overlay->first - << " ExpectedStatus# DISINTEGRATED"; - return false; - } + if (!suppressDisintegratedGroupsChecking) { + for (auto&& [base, overlay] : state.Groups.Diff()) { + if (base && overlay->second) { + const TGroupInfo::TGroupStatus& prev = base->second->Status; + const TGroupInfo::TGroupStatus& status = overlay->second->Status; + Cerr << '!' << NKikimrBlobStorage::TGroupStatus::E_Name(status.ExpectedStatus) << ' ' << NKikimrBlobStorage::TGroupStatus::E_Name(prev.ExpectedStatus) << Endl; + if (status.ExpectedStatus == NKikimrBlobStorage::TGroupStatus::DISINTEGRATED && + status.ExpectedStatus != prev.ExpectedStatus) { // status did really change + *errorDescription = TStringBuilder() << "GroupId# " << overlay->first + << " ExpectedStatus# DISINTEGRATED"; + return false; + } + } } } diff --git a/ydb/core/mind/bscontroller/config_cmd.cpp b/ydb/core/mind/bscontroller/config_cmd.cpp index 5bd83cc679..02aa1828b0 100644 --- a/ydb/core/mind/bscontroller/config_cmd.cpp +++ b/ydb/core/mind/bscontroller/config_cmd.cpp @@ -246,7 +246,7 @@ namespace NKikimr::NBsController { const bool doLogCommand = Success && State->Changed(); Success = Success && Self->CommitConfigUpdates(*State, Cmd.GetIgnoreGroupFailModelChecks(), - Cmd.GetIgnoreDegradedGroupsChecks(), txc, &Error); + Cmd.GetIgnoreDegradedGroupsChecks(), Cmd.GetIgnoreDisintegratedGroupsChecks(), txc, &Error); Finish(); if (doLogCommand) { diff --git a/ydb/core/mind/bscontroller/drop_donor.cpp b/ydb/core/mind/bscontroller/drop_donor.cpp index a445e7a9eb..554490ab25 100644 --- a/ydb/core/mind/bscontroller/drop_donor.cpp +++ b/ydb/core/mind/bscontroller/drop_donor.cpp @@ -28,7 +28,7 @@ public: } State->CheckConsistency(); TString error; - if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) { + if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) { State->Rollback(); State.reset(); } diff --git a/ydb/core/mind/bscontroller/impl.h b/ydb/core/mind/bscontroller/impl.h index 0eb892d1cf..e942284dce 100644 --- a/ydb/core/mind/bscontroller/impl.h +++ b/ydb/core/mind/bscontroller/impl.h @@ -1479,7 +1479,7 @@ private: void UpdateSystemViews(); bool CommitConfigUpdates(TConfigState& state, bool suppressFailModelChecking, bool suppressDegradedGroupsChecking, - TTransactionContext& txc, TString *errorDescription); + bool suppressDisintegratedGroupsChecking, TTransactionContext& txc, TString *errorDescription); void CommitSelfHealUpdates(TConfigState& state); void CommitScrubUpdates(TConfigState& state, TTransactionContext& txc); diff --git a/ydb/core/mind/bscontroller/node_report.cpp b/ydb/core/mind/bscontroller/node_report.cpp index efb029b7e2..083f8b55df 100644 --- a/ydb/core/mind/bscontroller/node_report.cpp +++ b/ydb/core/mind/bscontroller/node_report.cpp @@ -76,7 +76,7 @@ public: State->CheckConsistency(); TString error; - if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) { + if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) { State->Rollback(); State.reset(); } diff --git a/ydb/core/mind/bscontroller/register_node.cpp b/ydb/core/mind/bscontroller/register_node.cpp index 7479b8b16e..44ca2510a3 100644 --- a/ydb/core/mind/bscontroller/register_node.cpp +++ b/ydb/core/mind/bscontroller/register_node.cpp @@ -169,7 +169,7 @@ public: Response = std::make_unique<IEventHandle>(MakeBlobStorageNodeWardenID(nodeId), Self->SelfId(), result.release(), 0, 0); TString error; - if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) { + if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) { State->Rollback(); State.reset(); } diff --git a/ydb/core/mind/bscontroller/virtual_group.cpp b/ydb/core/mind/bscontroller/virtual_group.cpp index b057b80bf1..11771bb405 100644 --- a/ydb/core/mind/bscontroller/virtual_group.cpp +++ b/ydb/core/mind/bscontroller/virtual_group.cpp @@ -209,7 +209,7 @@ namespace NKikimr::NBsController { } State->CheckConsistency(); TString error; - if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) { + if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) { State->Rollback(); State.reset(); } @@ -349,7 +349,7 @@ namespace NKikimr::NBsController { ConfigureBlobDepot(); } - + void ConfigureBlobDepot() { TGroupInfo *group = GetGroup(); const ui64 tabletId = group->BlobDepotId.GetOrElse(BlobDepotTabletId); @@ -474,7 +474,7 @@ namespace NKikimr::NBsController { Action(*State); State->CheckConsistency(); TString error; - if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) { + if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) { State->Rollback(); State.reset(); } diff --git a/ydb/core/protos/blobstorage_config.proto b/ydb/core/protos/blobstorage_config.proto index 350f611d06..830d9c2ccd 100644 --- a/ydb/core/protos/blobstorage_config.proto +++ b/ydb/core/protos/blobstorage_config.proto @@ -544,6 +544,9 @@ message TConfigRequest { // ignore degraded groups checking bool IgnoreDegradedGroupsChecks = 8; + // ignore disintegrated groups checking + bool IgnoreDisintegratedGroupsChecks = 11; + // do not settle slots over non-operating PDisks bool SettleOnlyOnOperationalDisks = 9; |